Research into Windows 7 colorization - need answers #195
-
So about 3 or 4 days ago me and @aubymori decided to take a look into how we could improve DWMBlurGlass' Aero shader with better colorization. So we found that by default, DWMBG uses just a normal blend mode layer with the tint color and opacity of the user's choice in config.ini/gui. So after researching layer blend modes for a bit we came up with a solution that (almost) seemed to fit the bill: A normal blend mode layer on top, but set at a very low opacity and a multiply layer on the bottom:
I dont have more photos, but setting everything to 0 makes the window opaque. Increasing blur only and leaving everything else on 0 seems to make the window go from fully black opaque to fully transparent, but it isn't a simple opacity slider as you can see by increasing the other values with it on 100: So, if anyone (specially the project holders) can look deeper into Windows 7's color effects and give an insight it would be really helpful as we're stuck on this right now, and it would pretty much unlock accurate colorization. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 29 replies
-
Oh i should probably mention, we are also not sure on how the color "balances" work and what they actually control. Again, doesn't seem like a simple opacity slider. |
Beta Was this translation helpful? Give feedback.
-
In fact right now the Aero recipe that DwmBlurGlass is currently using is a bit outdated, our newest recipe is currently located at AcrylicEverywhere and I believe it has a more accurate look than you guys think. You can try compiling it and injecting it into dwm using the injector to see how our newest recipe looks. |
Beta Was this translation helpful? Give feedback.
-
Here's how my modified DWMBG's shader looks right now. Active is pretty good (though it still needs work), and inactive is way far off. |
Beta Was this translation helpful? Give feedback.
-
Can you describe the layers used? |
Beta Was this translation helpful? Give feedback.
-
Alright, so i retrofitted your implementation from AcrylicEverywhere into our DWMBg version and it seems like this isn't much better than the current default implementation. Looking over it, it seems like you definitely tried to implement some of the ideas from windows 7 (such as the 2 color system and such), but in the end i found it still didn't quite look like it, even though it looks like everything necessary is present. Most notably, when you have a window over a pitch black color, for example, that would barely get colored (due to multiply layer blending), but it seems like it gets just as colored as before with just a normal blend mode layer. As for the inactive, from the screenshots it looks a lot better than what we have right now. Do you have any clue of what the "Blur" layer might be? Maybe what blend mode it uses? Oh and also, could you provide the DLL injector you used, as i can't find one that properly injects AcrylicEverywhere, would make testing easier. |
Beta Was this translation helpful? Give feedback.
-
@ALTaleX531 Did some slight modifications on your formula and was able to get pretty good results: It seems like you flipped blurbalance to be negative. Otherwise, the formula stays relatively unchanged except with different values. |
Beta Was this translation helpful? Give feedback.
-
hey, can i have this one? |
Beta Was this translation helpful? Give feedback.
-
secondary color looks like it might be simply additive? edit: they all seem to be simply additive, going something like this (primarycolor * primarybalance) + (desaturatedblur * secondarycolor * secondarybalance) + (blur * blurbalance) where blur is just the gaussian blurred background with no modifications done to it, not exactly sure how they control the balances based on the opacity slider or inactive state though |
Beta Was this translation helpful? Give feedback.
-
That's the odd thing though because if you crank up the blur blend you'll see it does the "overexposure" effect, idk how to explain since im still lost on it |
Beta Was this translation helpful? Give feedback.
-
I'll write an explanation soon enough on how Windows 7 colorization works (as far as i know) to maybe bring closure to this. Thanks a lot to @WackyIdeas, @TorutheRedFox for major leads, @ALTaleX531 for helping me with shader work on DWMBlurGlass and to anyone who has contributed with information on this discussion. |
Beta Was this translation helpful? Give feedback.
-
Well, I spent all morning today extracting and disassembling the Windows 7 blur shader bytecode. flowchart LR;
backdrop-->|gaussian_blur|blurred_backdrop;
blurred_backdrop-->|greyscale|greyscaled_backdrop;
greyscaled_backdrop-->|multiply|blurred_backdrop_multiplied_by_balanced_afterglow;
blurred_backdrop-->|multiply|blurred_backdrop_multiplied_by_blur_balance;
blurred_backdrop_multiplied_by_balanced_afterglow-->|add|composited_blurred_backdrop
blurred_backdrop_multiplied_by_blur_balance-->|add|composited_blurred_backdrop
balanced_color-->|add|output;
composited_blurred_backdrop-->|add|output;
|
Beta Was this translation helpful? Give feedback.
Well, I spent all morning today extracting and disassembling the Windows 7 blur shader bytecode.
I finally got the following recipe, and I'll pick a time to implement it.