SpaceRay
![]() |
I think that groups have been done and created TO SIMPLIFY AND MAKE EASIER the process of creating filters, but now I find that it seems that is more complex than not using them, maybe is because I do not understand well how to use the groups, so please, I would like that someone could explain and show how to use them better and explain why the things told below happens.
I have seen something that I still do not understand about the FF 4.0 groups and is how to use in the right way the sliders and color controls inside a group, because if you add them inside the group you can customize them as usual inside the group, but this way they are not showing in the settings tab, so for them to appear in the settings tab you have to also add the same slider or color control outside of the group, BUT the problem I find with this is that if you now enter inside the group there is NO WAY to modify and customize that slider or color control!!! You only see that this is controlled by an EXTERNAL setting outside of the group. SO, do I have to go outside of the group, change the setting, and enter again inside the group and see what result this setting do? ![]() ![]() Should I always have to unlink the sliders and color controls from outside of the group to be able to modify them INSIDE the group??? ![]() ![]() Because if they are linked externally you can´t modify them inside the group If this is how should be done, this way is really awkward, bad and unfriendly SO my question is How to use AND MODIFY sliders and color controls INSIDE groups? TEST WHAT I AM TELLING WITH THIS FILTER I have made a filter to show what I am trying to explain 1 - Download filter attached at the end 2 - Edit filter in Filter Editor 3 - Go inside the group 4 - Try to modify any of the "H Range", "Mortar Width" or "Chaos" sliders and you will see that is NOT possible because the sliders are NOT showing in the left side 5 - Try modify the image input of the color controls INSIDE the group and you can´t do it, EVEN if the color control is NOT attached outside of the group. 6 - Now try to modify any of settings of "L Range", "Fill Mode" or "Circular Arc" and then now these settings APPEAR INSIDE the group at the left, but as said, this only happens if there is no external slider linked outside of the group 7 - Go outside of the group 8 - Go to "Filter Controls" under Result component to see the "Settings tab" at left and see that ONLY the sliders that are linked OUTSIDE of the group will be seen in the settings tab 9 - So the only way to make all the controls inside the groups appear ALSO in the settings tab in the filter you must connect EACH one of the sliders and color controls ALSO OUTSIDE of the group, BUT then after you can´t modify any of the settings from INSIDE the group. 10 - So if you really need to add also externally the sliders externally it seems that you must copy them from inside the group and paste them outside after, because you can´t go outside of the group and add a new slider because this slider will have DIFFERENT values than the sliders that is already inside and linked and connected to this external link. 11 - What I have seen is that YOU CAN modify the remapping of the slider EVEN if the slider is already connected to another slider outside of the group, so you can go to an internal slider and do the remapping and the external slider will follow the internal remapping Thanks very much for any help that any of you could give to explain this FF HELP AND FEATURES PAGES I have already seen the Groups Help page and also the Groups Feature page And the only reference to using input control is
This does not help much, but in the other text
I see this text telling that you can use control components inside the group and you have the option to NOT show them in the settings tab, so this is the dual purpose that is told in the first text. BUT none of this texts help to solve the problem Group Sliders test.ffxml |
|||||||||||
Posted: December 14, 2013 6:40 am | ||||||||||||
Sharandra
![]() |
*Wall OF Text crits Shar for 100000000000000*
*Shar dies* Yes, it´s a problem they haven´t fixed yet. I guess they are still looking for the best solution. |
|||||||||||
Posted: December 14, 2013 7:34 am | ||||||||||||
Skybase
![]() |
tl;dr: Controls can't be dealt with inside groups when connected externally. Help.
Thoughts: it's probably just this way to preserve hierarchy. Albeit, mildly frustrating but it makes sense in a bigger picture. [A side note] I'm a bit confused at what you wrote above but I kinda get it. Is my tl;dr basically what you mean? [edited] |
|||||||||||
Posted: December 14, 2013 7:58 am | ||||||||||||
SpaceRay
![]() |
I did not know if this was a bug, or was it done this way right and it was that I did not know how to use it
![]() ![]() ![]() ![]()
OH! So this is really a possible bug and it must be fixed? So this is very good news that is NOT how it is done and how should be used the groups, and hope they can fix it
Oh yes! Very simple explained ![]() This was with what I started but then I felt it could not be understood and felt like it was my fault and that I did not know how to use it and then... It grew very much
As said to Sharandra, sorry to have it so complicate and confusing |
|||||||||||
Posted: December 14, 2013 1:33 pm | ||||||||||||
Skybase
![]() |
No, it's not a bug. It's an interface design issue. Or is it?
|
|||||||||||
Posted: December 14, 2013 7:35 pm | ||||||||||||
GMM
Moderator
Posts: 3491 |
Is it an issue? If you take a component, say Perlin Noise, and connect a Slider to the Roughness input, you are no longer able to modify roughness from inside the component settings: it is now controlled by a slider. Groups just follow suit of this design logic. |
|||||||||||
Posted: December 16, 2013 6:06 am | ||||||||||||
SpaceRay
![]() |
Of course, I agree with you in this and you are totally right that you can´t modify the values of the component itself when there is already connected a slider, and you have to go the slider to change the values and this is right and nothing wrong with this and is good AND this is really what happens when using control components INSIDE a group IF THEY ARE NOT CONNECTED EXTERNALLY THIS is the real problem, you can´t modify any control component and any value of a component IF this control component has attached another control component outside of the group Please, as this is thread was not made clear and can be confusing and has a lot of text I have done another thread that has VISUAL examples and show exactly what I mean and wh ere is the problem Bug? WHY I can´t modify the values of controls INSIDE group if linked? |
|||||||||||
Posted: December 16, 2013 6:22 am | ||||||||||||
Sharandra
![]() |
GMM wrote:
You´re kidding, right? |
|||||||||||
Posted: December 16, 2013 6:47 am | ||||||||||||
Skybase
![]() |
I get the logic of it and I don't necessarily disagree on the stance of it. I've been using node-based systems for years and groupings have always behaved this way so I'm quite used to it. Products like Quartz Composer just behave this way as well. So when I break it down I quite get it. Logically what's inside of a group is just it's own system. Having the ability to access what's external would probably get messy given how it's illogical to alter data fr om what's feeding it. So changing data from within a group goes structurally against the flow of things in node based programs, so that's illogical. Interface wise, having a sudden appearance of some other, external node would probably make my head spin a bit before I say "Oh yeah, it's THAT node outside of THIS component that's feeding THIS data." Which seems easier just to be directed to that node instead.
I guess otherwise if you had 2 or more nodes being controlled by one node, which you have specific settings for, there's a likely chance you'd mix something up given you don't have visual confirmation of what that node's specifically connected to. In any case, if I change a variable, I'd probably throw off every other node somehow. (I wrote this in another thread.) Aw well... that was a bit of my rambling but I think I get it. I still think it's a global design issue with every other nodey program. It's something that's small and yet a mildly frustrating issue. With FilterForge I basically discovered myself hopping in and out of a tree of groupings and this basically got extremely annoying quickly. And likewise I'd say something like "Oh why not do this or that simple thing that you can already do...." I sometimes can't. I make huge trees and typically make complicated chains of stuff. I know most of us don't make ridiculous chains of stuff but I do. And there's some part wh ere the node-based interface design fails given hundreds of components doing this and that. Oh boy the complexity... the confusion. So I don't know anymore. I'm honestly thinking "Huh... that makes better sense now" and I get the feeling "then again..." I always see the bigger picture of things and I get it anyway. I understand it. I just trip on the little things still and that's what I'm wondering about. What can we do slightly differently... sort of. ![]() |
|||||||||||
Posted: December 16, 2013 8:31 am | ||||||||||||
Vladimir Golovin
Administrator |
When you open a group and edit its internals, you don't edit an abstract group -- you edit a specific instance of a group. Each instance's inputs will reflect the values that are supplied to that specific instance by external connections.
Let's consider SpaceRay's example. It has one group, where the sliders connected to its inputs have values of 30, 30 and 5. Now instantiate the group, plug a second independent set of sliders into the second instance, and then set their values to, say, 60, 60 and 10. When you open the first instance, the (unchangable) sliders have values of 30, 30 and 5 inside the group. When you open the second instance, the same (also unchangable) sliders have values of 60, 60 and 10 inside the group. That is, groups and instances are always edited in the context of their connections to the filter tree. Why are you unable to edit sliders in each of the above cases? Well, theoretically we could implement the ability to somehow propagate editing events to the control plugged into the group input being edited right now. However, what if it's not a slider but a gray script, a formula or a constant (such as image width), i.e. something unchangeable? Or, for a more mundane example, what if it's a map input which is externally 'connected by' a map component? And there's this thing that we call 'locality of edits'. Basically, it means that if you edit something, you affect only the current object (e.g. a component or remapper). Non-locality is a technical hell (believe me, we tried that with int-to-int remappers) and a usability nightmare ("hey, I didn't change that value, why did it change??"). TL;DR: Values of externally connected controls of a group are specific for each instance of that group. It does matter which instance you open for editing. You can't edit externally connected sliders because some external connections are uneditable and some cannot be represented by a single control (and because implementing this is a technical hell and usability nightmare.) Solution: If you want to be able to always edit group's input values directly, create a separate instance of that group, just for editing -- and leave all inputs unconnected. This way, you'll keep the first group properly connected to the filter tree, and you will be able to edit contents and controls from within the group at the same time. |
|||||||||||
Posted: December 16, 2013 10:39 am | ||||||||||||
SpaceRay
![]() |
I agree with Sharandra, I could not understand HOW this could be true and this could NOT be an issue and may have thought also that it was not true, BUT regretably after what Skybase and Vladimir have told above it seems that this is totally true and THIS is the way it is done ![]() ![]() ![]() ![]() I can´t still believe and do not want to accept and want to think is a joke, that you will NOT be able to modify the content of the components inside a group when you make a group as you are forced to connect the internal controls externally so they are shown on the settings tab. So this makes using Groups much more complex and difficult than using them, so I think it may be better to avoid using them, the problem is with all the filters that will be using this groups downloaded from the FF library and that you will NOT be able to customize and modify them as you could before, because all the controls inside the groups will be disabled ![]() ![]() ![]() ![]() ![]()
Sorry to say it, but this is a very bad solution from my point of view and not useful and practical |
|||||||||||
Posted: December 17, 2013 3:00 am | ||||||||||||
Skybase
![]() |
[Warning: long post ahead!]
Ok, I first off want you to understand that I'm not necessarily agreeing with the process, I still think there's legroom for improvement on how it should be handled, but at the same time, I simply don't think going against the structure works in favor for users. I basically want you to understand that I'm merely exemplifying a point that there's a structure to any program and that you can't simply slap suggestions in between and assume things will work as intended. It's important to understand that there's a basis for how things get implemented. It works together, hand in hand and breaking that order will cause a level of confusion. To me, what started this whole thread is basically the mild misunderstanding of structure and how things are in a program like this. Now I know I have a very different experience from everybody else but hear me on this: the fact is if you don't understand the structure of how a program behaves, you'd be complaining about every other feature in the program. What's important is to understand is this abstract concept of why things were made the certain way. It's quite difficult though, it's not concrete nor is it something you can understand by reading a book. You really need experience to think about what makes a feature "a feature".
Vlad suggested something I've been basically doing. It works. It's not bad as you say it is and I don't think it's impractical given how things behave already. I think you talk on a bias of your own suggestion, thus making commentary like that and it really disappoints me that you don't even give a second shot at thinking about what would solve your issue. But don't take offence to that, I'm merely saying you should consider it as a solution and you should figure your own out that works for you. I get it, I work with tools all the time and sometimes tools don't behave the way I want them to. Being fluent using Maya, Modo, Blender, FilterForge, etc etc etc it's not like I agree with how every feature works in a program. But I don't make huge complaints about it because I work with a system of things and if you really want something that works in your favor entirely, write your own program. But you have to think, when you build a tool for yourself, it's only useful for yourself. Making a tool that's accessible to everybody is a challenge of design and how you construct a feature. So I get it. I trip on it still, and it does frustrate me sometimes. But in my philosophy, I also allow legroom for that sort of thought. I don't simply reject it, I work with it. It's a tool after all, you don't get more and you can't always have everything you want. I know, it's difficult, but I've built my carrier on understanding things and working with them rather than leaving complaints on a forum over everything that doesn't work in my favor. As usual with respect and love. ![]() [Edited multiple times over grammar and clarification] |
|||||||||||
Posted: December 17, 2013 1:13 pm | ||||||||||||
Sharandra
![]() |
Well I do understand why it works this way, and using instances is a solution ofc, but I don´t really like having to create extra instances in complex filters just to tweak some values.
Why not make the filter controls panel independent from the results node? Then you could access the controls from everywhere in the tree, that would not only solve this issue with groups, but you wouldn´t have to navigate around the tree so much anymore in general. It should be hideable like the components panel ofc. |
|||||||||||
Posted: December 17, 2013 5:06 pm | ||||||||||||
Vladimir Golovin
Administrator |
So, Sharandra, do you think that making the Select Filter Controls menu command (and the associated Ctrl+F hotkey) accessible from within groups (currently both are disabled when editing a group) will solve the problem?
(I think we are talking about two different problems. Mine is the inability to edit the default values of connected group inputs on any nesting level, while yours is a special case of that where you want to edit top-level controls connected to a top-level group. The solution above solves your problem, but it doesn't solve mine.) (The decision to make Filter Controls visually selectable goes back to early the stages of development of FF. I and another coworker spent at least a month experimenting with the panel approach you suggest, but we couldn't arrive at a good solution: the resulting tabs-within-tabs-within-tabs solution was a complete mess.) |
|||||||||||
Posted: December 18, 2013 11:01 am | ||||||||||||
Sharandra
![]() |
Yeah maybe we are talking about different things, dunno.
I think Ray was talking about the problem, that you cannot change the value of controls if you are inside the group, but a control is connected outside. you have to leave the group, change the value, go back in. What I meant was, that you could add the controls panel on the left side, like outside the editor, so that the controls are always accessible. That way you can change the values from controls connected to groups from within, without having to leave the group, or disconnect the controls, or create instances or whatever. |
|||||||||||
Posted: December 18, 2013 11:53 am | ||||||||||||
Vladimir Golovin
Administrator |
That's exactly what I suggested in my idea above. Enabling Select Filter Controls from within groups would allow you to see filter controls. However, this only solves the problem for top-level groups. It won't help in any way with groups nested in other groups nested in other groups. |
|||||||||||
Posted: December 19, 2013 9:28 am | ||||||||||||
Sharandra
![]() |
Why not? If it was always accessible then it wouldn´t matter where in the nested groups you are, you could always access the control? Or am I missing something?
Oh and it wouldn´t take you out of the group or away from wherever you are in the tree? (I haven´t dared to use that command since it caused crashes back then, and can´t try it out to see what happens right now lol) |
|||||||||||
Posted: December 19, 2013 9:49 am | ||||||||||||
SpaceRay
![]() |
OH!! Then would be possible in some way to activate and enable the editing of the values of sliders EVEN if they are connected externally? AND also for Color controls that are attached to other color controls outside? (Not to a image component that is converted to a color control) If this would be possible would be great and awesome, because I am sorry to say that if you can´t edit the values of the inside components if they are linked externally, then for me the groups and not useful and would be better to avoid using them.
Maybe I know what Vladimir is telling that it will NOT solve the problem of nested groups because when you connect a group to another group you are connecting it like only ONE component alone and does not take into account any of the controls of that group, inside of the group it appears like ONE color control showing the group name. ![]() Please, Sharandra, take a look to this screenshot taken from this thread here that I have made from your Image Knit filter and you will see at top right what I am telling about groups going inside groups. I think that this is what may be refering Vladimir, or maybe I am wrong and this is not the reason. |
|||||||||||
Posted: December 19, 2013 11:48 am | ||||||||||||
Sharandra
![]() |
Yes that would help. I understand the nested groups problem. But I think it would be still very helpful, if at least the top level controls could be accessed fr om within groups. |
|||||||||||
Posted: December 19, 2013 12:02 pm | ||||||||||||
Skybase
![]() |
One of these days....
|
|||||||||||
Posted: December 19, 2013 6:41 pm | ||||||||||||
Vladimir Golovin
Administrator |
This way you could only access the top-level controls, filter's controls, but not the controls of the parent group your current group is located within. |
|||||||||||
Posted: December 20, 2013 9:43 am | ||||||||||||
Sharandra
![]() |
yes, I understand that, but even only being able to access top level controls would help a lot!
![]() |
|||||||||||
Posted: December 20, 2013 10:05 am | ||||||||||||
SpaceRay
![]() |
I totally agree much with Sharandra, IF you could ONLY be able to acess to the top level controls, I mean that you could be able to modify the values of the color control components inside a group that is externally connected would really help a lot and would make the groups feature MUCH MORE useful and easy to use How it is done now the groups, as I am sorry to say but for me I would prefer to NOT use groups and ignore them if you are forced to link the internal control components with external control components AND then after this you CAN´T modify any the linked control components inside the group. So as said already, if you could allow to modify them inside when linked from outside would be a very good thing NOTE "you are forced to link" I mean that IF you want that this color control is shown in the settings tab, you must connect it in the outside of the group, and then doing this the internal control component is disabled |
|||||||||||
Posted: December 21, 2013 1:04 am | ||||||||||||
Skybase
![]() |
Yeh but only being able to access just the top-level material is kinda like having a giant, useful feature only accessible when certain conditions are met. I don't know if I'd call that "a feature well done" more like "a feature half done." And as my component tree just expands I'm pretty sure I'd just want everything to exhibit the same behavior all the way, especially given how the program's environment's set up already.
SpaceRay, I've dealt with FilterForge for 3 versions without any grouping features. We've collectively tackled complicated node structures without groups and we did just fine. If it bugs you so much, you don't need to utilize them at all. It just saddens me you can blatantly slap down stuff like "I am sorry to say but for me I would prefer to NOT use groups and ignore them" (if and only) after we just got that feature. Let's think progressively about what makes a feature better, rather than hitting what we just got with a stick. |
|||||||||||
Posted: December 21, 2013 2:24 am | ||||||||||||
Sharandra
![]() |
Well it would be better than no access at all and I´d rather have that, than nothing until a better solution is be found:-)
|
|||||||||||
Posted: December 21, 2013 7:03 am | ||||||||||||
SpaceRay
![]() |
Sorry that I do not have experience with any other software that also uses groups like others possible node based software, so I can´t compare and know how others works
Yes I agree very much with you, IF you could have acess to al least top level (inside the group) would be MUCH better as it is now, and would make groups a worthy thing and be useful again, at least for me and my point of view, as they would not add additional and complex ways for dealing with groups collateral effect. As I have put in this thread Bug? WHY I can´t modify the values of controls INSIDE group if linked? ![]()
Yes, you are right we have been building complex filters with complicated structures in FF 3.0 without groups and we did it just fine and this is why I have said I would not use groups if they bring additional problems and is not something that will really help you instead of making you think on the CONDITIONS you have to use them that will make the work harder. IF what I show in the above screenshot would be possible would change very much the usefulness of the groups, at least for me. Of course as you say well, using the groups is a totally optional thing, and you can choose to use them or not, and I personally choose not to use them IF they keep in the same way as they are now, or use them only when there are not controls inside connected from outside.
Sorry to say it, but I do not find or see the benefits and advantages using groups when they have the condition that you are forced to connect any internal control of a group externally so it can be shown in the settings tab, AND doing this the control of that component gets disabled As said, I may use groups ONLY if you do not need to have internal control components that needs to be connected from outside |
|||||||||||
Posted: December 23, 2013 5:38 am | ||||||||||||
Sharandra
![]() |
Well, then don´t use them *shrugs* Having only the external controls show up is fine. If all the unconnected controls in groups would show in the list, it would be a mess. It´s also useful, because you can use color controls in groups, without giving access to the user, for example. |
|||||||||||
Posted: December 23, 2013 7:12 am | ||||||||||||
SpaceRay
![]() |
Of course, and I agree with you in this, and is true that is GOOD that ONLY the external controls attached to the group are showed and not ALL the internal controls of a group, I mean that you can decide which one of the controls inside the group is shown in the settings tab, and I like it this way, and I was not requesting this. The big problem is that when you decide to show, for example, 3 controls from inside the group, you have to connect them externally on the group, and this is no problem and only a small amount of work, BUT doing this the control slider of those 3 controls components you have choosen are DISABLED inside the group and you can´t change any of the values while inside the group. |
|||||||||||
Posted: December 23, 2013 8:58 am |
Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!
33,712 Registered Users
+19 new in 30 days!
153,533 Posts
+31 new in 30 days!
15,348 Topics
+73 new in year!
34 unregistered users.