Mediator design decisions
- crosire
- Topic Author
This requires some major rewriting by Lucifer though, so before anything final is decided, we agreed to do a poll here first and ask for your opinion.
- Mobeeuz
/2ยข
P.S: Don't see anything to click for voting, is someone really going to tally this manually?
- crosire
- Topic Author
Fixed. Thanks.Mobeeuz wrote: P.S: Don't see anything to click for voting, is someone really going to tally this manually?
- logout20
- Ganossa
- Wicked Sick
I remember something that Lucifer said once... Was something about one of his students and his fear of experimenting with the new, the fear of changes making them unusually attached to the old enough to ignore the usefulness in front of them just because of a new face.
Of course we should be grateful for everyone that here and there have helped, somehow, with this project with so many ramifications, but the mediator is good and it embrace many and all of the old tools that I can think from in just one place... It should not be discarded, instead, given a few changes.
- piltrafus
Wicked Sick wrote: ...I would welcome changes to make it better and I think that reverting it to something similar to this would be a waste of time undoing and redoing things. Mostly because I feel that Lucifer really invested his time in making it, also, it is not hard enough getting used to the mediator to justify such change, even less after you give it a try, as Mobeeuz said[...] the mediator is good and it embrace many and all of the old tools that I can think from in just one place... It should not be discarded, instead, given a few changes.
Quoted for agreement.
I very much prefer to get new or improved shaders than a different flavor of the preset editing tool. I was happy with notepad++ but I admit I like the mediator as a quick testing tool. It's a great tool and probably much work was put on it already. let it grow as its second iteration is a great starting point.
My only suggestion would be to reorganize it a bit.
- The "pipeline" tab should be always visible. And double click on a shader on the pipeline should bring the settings for this shader into a separate window below.
Also (but less important)
- The tabs like GemFX, McFX, SweetFx, custom, common etc are probably not the best way to go. It makes sense to the developers as it separates shaders per developer but it doesn't make sense to an newcomer that's trying to use the tool for the first time without knowing anything about it. SO I would recommend separating things into two categories. General settings(log depth, depth visualization, hdr level, etc) and shader settings.
-The Mediator tab works great as a tab in the same window as the pipeline. Just like it is now.
- piltrafus
The Mediator and pipeline tabs are the main tabs to get reshade working, so they go above and separated from the rest.
Everything else is tweaking numbers so it goes below for those who dare dig into it.
Here is a mockup of a better organized UI in IMHO:
- crosire
- Topic Author
Nice one. I would go as far and get rid of the suite and effect name tabs and simply show the settings for the currently selected effect in the list above.piltrafus wrote: Here is a mockup of a better organized UI in IMHO
- SunBroDave
Also, the options grouped under "Common" and "BasicFX" in the current release of ReShade Framework seem like they might make more sense placed in a 'Preferences' window, navigable from a menu option off the main screen.
- Ganossa
So far it gives a good overview where you see need for change.
To expand on this discussion, I would like to explain why some decisions have been made, how the mediator content is currently structured and in which way it affects visuals. This should give you a more detailed foundation for suggestions that might leverage the existing architecture.
Let me explain first our current underlying layout in ReShade. We combine a huge amount of shader with an even bigger amount of variables. To be flexible in size (and devide responsibilities among us individual developers), we decided to introduce suites that split shader into domains. Each suite has its own configuration file. A single suite is supposed to combine a number of contextually related shader. The mediator is reflecting this layout by automatically generating all associated elements for configuration.
Issue #1:
You mentioned confusion for newcomers that have no idea what a GemFX, McFX and SweetFX suite is.
That is understandable since their naming does not reflect their purpose. However, the mediator itself is only reflecting the underlying layout. The actual naming of those components is not done inside the mediator.
To manage all generated components, I decided to use a tree structure which spans also the tabs that visualize the underlying hierarchical layout. It is useful to write back settings into the existing layout without storing additional meta data about it. Therefore, (almost) all data is directly stored in the individual components.
Issue#2:
Your suggestion was to eliminate the hierarchical components in the mediator to further differentiate between a developer view and a user view. This might prove to be more difficult to achieve with the current architecture than other suggestions. It might need me to change the way I store data and therefore also every write and read method.
Issue#3:
It was asked for a direct connection/link between the shader in the pipeline and the individual shader tabs with their variables. There should be no problem supporting that hence I would like to follow up with making a few (example) suggestions how we could approach those 3 above mentioned major issue.
Solution#1: (straight forward):
Removing the suite tabs in the sense that they are made invisible (maybe optional visible) with all their chield components. Making them visible as soon as a shader in the pipeline was selected either with a jump or additional window below the pipeline as suggested.
Solution#2: (minor change to structure):
Separating suite tabs from the main tabs and therefore also their data structure. The behavior from a user point of view will be the same as on solution#1
Solution#3: (major changes to structure)
Separating suite data structure from visuals and only displaying the linked shader which was selected in the pipeline (this might in some way also be possible in Solution#2)
Anyhow, I only want to make you aware of the problems when it comes to changes and individual investment for certain kind of advantages that could be suggested. It should now be easier for you to make suggestions that -also for you- require appropriate effort
- piltrafus
thanks for taking the time to explain better how mediator works. Knowing better now the amount of effort involved I would say:
- forget about issues #1 and #2.
- If issue #3(link from shader name to its settings) is implemented with solution #1(straight forward) using a separate window the above issues become irrelevant.
It doesn't really matter if is still organized per suite as long as you can click on a shader name and get the relevant settings below. This would become the main navigation method trough mediator so it doesn't matter how shaders are organized. You always are a click distance from the required settings. I would strongly encourage the use of a separate area for shader settings so pipeline is always on as It's your main work window. You can even add a title to the shader settings area like "shader attributes", "shader properties", "shader editor"... to make it more clear.
Sunbrodave says:
I completely agree. Maybe if you go for a separate area below you could split it and reserve some space there where this settings are always visible. Maybe under a "preferences" or "Settings" or "Options" tab.Also, the options grouped under "Common" and "BasicFX" in the current release of ReShade Framework seem like they might make more sense placed in a 'Preferences' window, navigable from a menu option off the main screen.
Or just access it through a menu item off the main screen as is suggested by dave.
P.S. This is a bit off topic. my main issue with framework is that the DOF shader can't be reordered. It always has to go first after AO and before everything else. That breaks it for me. I still use a custom shader suite because of this. So please that's something broken and needs a fix . Of course this is my humble opinion.
Thanks for all your efforts.
- MaxG3D
- crosire
- Topic Author
The in-game GUI would never support changing preprocessor defines, nor understand the concept of different shaders/suites. It would be purely to modify uniform variables, which none of the shaders use yet (apart from a few special uniforms, like timers, etc.).MaxG3D wrote: Make an in-game GUI and all your problems will fade away
- Quentin-Tarantino
But Lucifers old configurator for GemFX i did use and i found it Really user Friendly
- DeMondo
I have to say when Im in a game & I want to change ReShade settings on the fly, I like to swap out the game and into one of the .cfg files with wordpad (or any text editor) its fast and I like to see clearly the few values I want to tweak, when I have to tweak alot I use Mediator, Mediator could use a bigger layout, settings and value bars are sitting very close to each other now, its easy to make a mistake this way.
In short: Mediator is a fine piece of tool with a huge amount of settings under the hood and easy to use, so a no go for a change, perhaps as extra to have 1 big .cfg file divided in parts instead of 9 different .cfg files, a suggestion.
- brussell
Variables should be freely editable in the gui. If it exceeds the range or if it's the wrong type, show a warning message.
Other than that I would prefer the design of the example in the first post (simpler structure and clearer (system) theme.), exept the non-editable variables.
- fuze
- roxahris
- In the parts of it that aren't just sliders, it feels like it takes a second or so every time something is moused over for the window to update. This is especially awkward in the Pipeline screen, where it flickers every time something is highlighted
- Elsewhere in the UI, aside from on buttons, there's no indication of what's currently highlighted under the mouse, which makes it feel less responsive than it actually is.
- The horizontal selectors for the effects in a given framework has very little separation from the menu above it. (Extra spacing and a lighter background would fix this.)
- The descriptor box at the top doesn't change when selecting effects in the framework tabs, which seems like an odd oversight.
- The settings boxes themselves for individual effects don't fit into the rest of the UI at all. Where the rest is grey and orange, they're full of white and blue. They seem to be using a smaller font, but for most effects the options barely fill up the available window space.
- sajittarius
In the Pipeline window, to move things up and down you need to use the scroll wheel, unless i am doing something wrong. The problem is that the scroll wheel, for me, sometimes will scroll the entire window also, making it difficult to move the single item. I think it would work better if you could just click+drag the shader to where you want it in the list, or if that is not possible, to place a set of up/down arrows on the side that move the selected shader up or down in priority. I like Crosire's idea also to show the relevant tab when selecting a shader in the pipeline. I would go further and when you are in a specific Suite's tab, give the user the option to open the relevant config file (for example if the slider is .4 -> 1.1 and i want to change that to .4 -> 1.5). Maybe make it a power user option if you are afraid of UI clutter?
I know you are using symlinks for the reshade.fx file, with the option to permanently place a set of files in a game folder. Not sure if this has been brought up before but I personally would prefer to have the config files in the game folder, that way it is still permanent but editable. Too many times i have had the mediator open for one game, and opened another game and it started applying the first games settings to the second. In general it just seems like too many steps to apply a preset. I have learned that to make sure a setting saves, i will click Apply at the top, then go to the Mediator tab to hit Update on the preset. I think Apply should automatically Update the current preset.
My only other gripe is with importing a new suite. I know the whole purpose of this mediator is to make it easier to incorporate multiple suites. I had difficulty getting custom suites to work. I imported a couple, like Ioxa's Highpass filter, and the mediator kept reverting my pipeline file. I had to close the mediator, and update the default plus the current game's pipeline file before it stuck. I ended up reinstalling the mediator before that though, because it just wasn't accepting the changes. I don't really know how to make this easier, i know its complicated to coordinate all of the files.
Thanks again for the wonderful program.