• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GeDoSaTo - Downsampling from Infinity and Beyond!

Leks

Member
I've installed the software for the first time, is the blur in the screenshot function normal?

GeDoSaTo screenshot:

786212screenshot201409251932300.png

In-game screenshot:

 

Parsnip

Member
I've been having a problem with keybindings with the latest update, for example setNextScaling, toggleHUD, toggleAA no longer work while the others work fine. Also, my GeDoSaTo.ini file has my scaling set to lanczos and AA off but when I toggle information it shows bicubic scaling with FXAA and I can't change it. Any ideas how to fix this?

Are you sure you are looking at the correct ini?
Remember that if you open settings from GeDo tool, it will initially open GeDoSaTo.ini, not GeDoSaTo_user.ini. Same with the keybindings, are you looking at the correct ini for that as well?
 

akira28

Member
Looks like the new Mechwarrior Online update broke the GeDoSaTo compatibility. Strangest thing. It only happens on the new update map, but it happens reliably. The screen will lock up, and alt+tab crashes the game. If it doesn't do that, then there are still weird geometric shapes and lighting artifacts around..

I updated the injectPSHash to 61ff7792, which seemed like it worked...for a minute. And then nothing. I'm stumped. Going to fiddle around with the graphic dumps tonight. Any advice is appreciated.
 

robgrab

Member
Are you sure you are looking at the correct ini?
Remember that if you open settings from GeDo tool, it will initially open GeDoSaTo.ini, not GeDoSaTo_user.ini. Same with the keybindings, are you looking at the correct ini for that as well?

I reinstalled using the updater tool and it's fixed now. I looked at my backup though and noticed I had a GeDoSaTo_user.ini file with those settings so it must've been loading that one instead. How do you tell GeDoSaTo know which .ini file to load? I must've missed that.
I was never sure exactly how the user files worked.
 
I reinstalled using the updater tool and it's fixed now. I looked at my backup though and noticed I had a GeDoSaTo_user.ini file with those settings so it must've been loading that one instead. How do you tell GeDoSaTo know which .ini file to load? I must've missed that.
I was never sure exactly how the user files worked.
If there are conflicting settings the user files always take priority.
 

Parsnip

Member
I reinstalled using the updater tool and it's fixed now. I looked at my backup though and noticed I had a GeDoSaTo_user.ini file with those settings so it must've been loading that one instead. How do you tell GeDoSaTo know which .ini file to load? I must've missed that.
I was never sure exactly how the user files worked.

The order of priority.
config.png


What I was saying that if you click the Settings button in the Tool, the default ini it opens is the non-user one. So my guess was that you were editing that one, but your _user file was overriding the changes. If you click the U button in the Settings editor, you'll get to your _user.ini, or you can use a text editor like notepad or something to just edit the correct one like any other text file.

You could make desktop shortcuts to _user.ini files if you want quick access to them too. There's plenty of options.
 

robgrab

Member
How do you submit a game config, i.e. the PSHash code I found for taking HUDless screenshots in Flashback (2013)? Never uploaded anything to GitHub.
 
One3rd made a post about it (shouldn't this be added to the OP ?) :
http://www.neogaf.com/forum/showpost.php?p=123692627&postcount=2222

With this new method in mind, is there anyway to set custom SSAO values per game?
Good point I never even checked if it was possible. Currently no you can't but it's just 2 lines of code copy/pasted from post.cpp to add custom config per game

I've installed the software for the first time, is the blur in the screenshot function normal?
I think it's the other way around. The second shot seems sharpened while the first doesn't. It's not particularly blurry to me.
 

Alo81

Low Poly Gynecologist
Someone on another forum was claiming that downsampling or rendering at high resolutions isn't worthwhile and that typical AA provides the same results much more effeciently.

I made an example to show that while it's more efficient, it definitely doesn't provide the same results, and that birthed this little comparison GIF that I think really greatly shows the benefits of downsampling with Gedo.

downsampling_vs_msaa_by_alooo81-d80x0bd.gif


Blown up to 2x size with nearest neighbor
 

tauke

Member
Someone on another forum was claiming that downsampling or rendering at high resolutions isn't worthwhile and that typical AA provides the same results much more effeciently.

I made an example to show that while it's more efficient, it definitely doesn't provide the same results, and that birthed this little comparison GIF that I think really greatly shows the benefits of downsampling with Gedo.

downsampling_vs_msaa_by_alooo81-d80x0bd.gif


Blown up to 2x size with nearest neighbor

Downsampling from higher resolution will always have more information to work with which will result in nicer visual. :)

Sometimes I will do that when doing 3D render stuff where applying filtering during rendering takes really long time (mental ray and Vray). Render at much higher resolution with low quality filtering and later resize it in Photoshop.

Although I rarely use GeDoSaTo during gameplay though since the heat generated from my GTX 780 can be really hot (average 70C during full load).
 

Alo81

Low Poly Gynecologist
Has anyone tried this out with Neverending Nightmares?

By default, it has a bit of a shimmer to the line drawing as you move so I figured downsampling would likely fix that right up.

Problem is, it will recognize GeDoSaTo's resolutions, but picking them does nothing. If you alt+tab out then back in THEN it'll be properly rendering at the desired res, but you can only see the bottom right 1920x1080 of the full image, so it isn't being scaled.

Any idea which option I should play around with to see if I can get any results?

Since I have a 120hz monitor with lightboost enabled, I was able to fix the issue by getting the game to actually render at 120fps. If anyone else has the game and is curious to try, you can set the game to run in a window, then use SRWE to remove borders and force fullscreen. Then you get the game running borderless fullscreen, 120fps, lightboost enabled, and completely jitter free. Looks stellar in motion.
 

BONKERS

Member
Someone on another forum was claiming that downsampling or rendering at high resolutions isn't worthwhile and that typical AA provides the same results much more effeciently.

I made an example to show that while it's more efficient, it definitely doesn't provide the same results, and that birthed this little comparison GIF that I think really greatly shows the benefits of downsampling with Gedo.

downsampling_vs_msaa_by_alooo81-d80x0bd.gif


Blown up to 2x size with nearest neighbor


You should show that person this video and see if they can guess which one of these 4 is MSAA and which one is downsampling
https://mega.co.nz/#!TRJFGZoK!ud9C5sOIbc1e4KRZuFIziNj_X1w5vvFjSdFUcFL2ucc
 
The third Dark Souls 2 DLC has a lot of parts that kinda look like the foggy forest in the main game, so the AO looks a bit crazy/out of place:

ssao1_by_realghostvids-d80yd2c.jpg


ssao2_by_realghostvids-d80yd1m.jpg
 

RVinP

Unconfirmed Member
The third Dark Souls 2 DLC has a lot of parts that kinda look like the foggy forest in the main game, so the AO looks a bit crazy/out of place:
..
ssao2_by_realghostvids-d80yd1m.jpg

The forced AO artifact, actually appears to make that specific area look good in a weird way. Mostly because the default screen looks flat without depth perception, too much fog.
 
Problem is, it will recognize GeDoSaTo's resolutions, but picking them does nothing. If you alt+tab out then back in THEN it'll be properly rendering at the desired res, but you can only see the bottom right 1920x1080 of the full image, so it isn't being scaled.
You might want to try setting loadD3DEarly to true
 
The third Dark Souls 2 DLC has a lot of parts that kinda look like the foggy forest in the main game, so the AO looks a bit crazy/out of place:

ssao1_by_realghostvids-d80yd2c.jpg


ssao2_by_realghostvids-d80yd1m.jpg

Any idea what the setting is to turn off that makes the game look like that? I noticed it before but in this latest dlc it just looks too out of place and ugly.
 

BONKERS

Member
The third Dark Souls 2 DLC has a lot of parts that kinda look like the foggy forest in the main game, so the AO looks a bit crazy/out of place:

ssao1_by_realghostvids-d80yd2c.jpg


ssao2_by_realghostvids-d80yd1m.jpg

The game is going to look this way with any kind of AO injected, via GeDoSaTo or otherwise.


Which brings the question I never asked, does DS2's built in AO scale with resolution?
 

Alo81

Low Poly Gynecologist
Couple more shots of SAO in action :



I sent a Github pull request. SSAO is a really hard effect to work with. Prepare for some endless tweaking session. It's even harder as I/we have to "guess" the projection values from the game so I wouldn't expect the effect to look right from the get-go when applied to your favorite dx9 game (if it works at all with the GenericDepthPlugin). You'd have to find fitting values for the nearZ/farZ parameters (much like RadeonPro works iirc). Everything is configurable in the shader itself. And there's quite a lot to configure there, damn.

EDIT : what about Gamecube games :
http://abload.de/img/screenshot_2014-09-27b5jem.png
http://abload.de/img/screenshot_2014-09-27k8k3t.png

WOAH woah woah I did not see this gamecube thing before whats this all about
 

Alo81

Low Poly Gynecologist
Yeah, if this is in an operational state, I'd love to mess around with it. Anyone want to tell us how to set it up with Dolphin?

I know Boulotaur showed me you can modify Dolphins source in such a way that it'll work with GeDo.

The basic idea is to force the downsampling resolution directly into the code itself.

Now that I'm thinking about it that's probably what Boulotaur is doing alongside the GenericDepthPlugin with SSAO.
 
Yeah, if this is in an operational state, I'd love to mess around with it. Anyone want to tell us how to set it up with Dolphin?
It's not operational yet. I need yet to figure out how to scale the AO render target so that it fits perfectly the aspect ratio that the host application (be it games or emulators I mean) is outputting at. Otherwise -and I didn't show the AO blended into the original picture for a good reason- you'd get misaligned pictures with a huge offset between the two :/

I know Durante cooked up a specific function to handle specific aspect ratios but I'm unable to make it work properly for some reason. I asked him about it so we'll see...

And the performance really sucks when AO is enabled. At 3840x3168 (gamecube original res x6) I get something like 10 fps. So that really motivated me to try harder at implementing a mip-mapped depth buffer to feed the AO shader with. Theoretically -and the paper mentions about it- it should be a "x7 performance increase" ! But the original DX11 (and even GLSL) shader has a lot of bitwise operators that aren't available in SM3.0 (the shader model used for DX9). So I had to go and nag Professor Morgan McGuire himself so he gives me pointers about how to convert these to SM3.0. He's been really helpful so far. I even submitted the full shader source-code to him not even asking for a review but to share in return, in case anyone needs it
 
Hey Durante, you know about the FRAPS option to create an automatic screenshot evey "XX" seconds?

Would this be hard to do for GeDoSaTo?

I really like setting FRAPS to "Take a screenshot every 10 or 20 seconds" sometimes and then just play the game. But FRAPS doesn't capture FXAA or SMAA afaik, but your application can... how hard is it to implement?
 

Levyne

Banned
Hey Durante, you know about the FRAPS option to create an automatic screenshot evey "XX" seconds?

Would this be hard to do for GeDoSaTo?

I really like setting FRAPS to "Take a screenshot every 10 or 20 seconds" sometimes and then just play the game. But FRAPS doesn't capture FXAA or SMAA afaik, but your application can... how hard is it to implement?

I believe fraps captures the coloring/other post-processing effects of things like sweetfx so shouldn't it be capturing smaa too?
 

JaseC

gave away the keys to the kingdom.
I believe fraps captures the coloring/other post-processing effects of things like sweetfx so shouldn't it be capturing smaa too?

It does, at least in my experience. I used an SMAA injector for Borderlands 2 and the screenshots I took using FRAPS definitely included it.
 

Levyne

Banned
Neat, I was 99% sure it did. Not to mention that sweetfx has a built in capture function anyways.
3AQmK.gif


I just like using fraps instead of injector/gedosato so that my screenshots end up in the same place that I'm used to. Lots of options for screenshot taking.
 

Alo81

Low Poly Gynecologist
Hey Durante, you know about the FRAPS option to create an automatic screenshot evey "XX" seconds?

Would this be hard to do for GeDoSaTo?

I really like setting FRAPS to "Take a screenshot every 10 or 20 seconds" sometimes and then just play the game. But FRAPS doesn't capture FXAA or SMAA afaik, but your application can... how hard is it to implement?

Fraps should definitely capture post-processing. I know Steam screenshots don't.

What game are you trying to capture?
 
Interesting, I could have sworn there was a post process effect that didn't get captured by Fraps (FXAA via Nvidie Inspector?).

Well, the timed-auto screenshotting... when yill you implement it in gedosato? Are you already working on it right now?
;)
 

Durante

Member
Hey Durante, you know about the FRAPS option to create an automatic screenshot evey "XX" seconds?

Would this be hard to do for GeDoSaTo?
This would require some moderate effort, but not too much really. I'll put it on the list. I haven't done any work in GeDoSaTo for a week or two though, and it might still be a while yet -- I'm really busy with "real" work right now.
 

One3rd

Member
Created a new pull request for alternate Darksiders2 PSHash and addition of SinCity shader to post.fx.
...

1. Alternate HUD removal PSHash disables the main menu HUD but allows other effects, like motion blur, that the default hash removes. Limited use though, probably only useful for taking motion blur time stopped screenshots.

Code:
injectPSHash e59ee81e

2. Added SinCity shader to base post.fx file. (note: best results when used in conjunction with tonemap shader to reduce gamma)

post.fx with sincity

I didn't write this but just ported it over from a SweetFX shader. I had wanted to see if it was possible to rewrite so that you could change the color that comes through the monochrome effect is configurable but wasn't able to figure out how to do that. Currently it will only bring through, and enance, the color Red. Anyone know how this would be possible to change so that any color could be the focus color?

Code:
// ------------------------- SinCity --------------------------------------------

float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput.r - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(1.1f, 0.5f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}
 

Alo81

Low Poly Gynecologist
Created a new pull request for alternate Darksiders2 PSHash and addition of SinCity shader to post.fx.
...

1. Alternate HUD removal PSHash disables the main menu HUD but allows other effects, like motion blur, that the default hash removes. Limited use though, probably only useful for taking motion blur time stopped screenshots.

Code:
injectPSHash e59ee81e

2. Added SinCity shader to base post.fx file. (note: best results when used in conjunction with tonemap shader to reduce gamma)

post.fx with sincity

I didn't write this but just ported it over from a SweetFX shader. I had wanted to see if it was possible to rewrite so that you could change the color that comes through the monochrome effect is configurable but wasn't able to figure out how to do that. Currently it will only bring through, and enance, the color Red. Anyone know how this would be possible to change so that any color could be the focus color?

Code:
// ------------------------- SinCity --------------------------------------------

float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput.r - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(1.1f, 0.5f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}

I havent tested myself, but does

// SinCity settings
#define sincity_strength 1.00 //[0.00 to 1.00] Adjust the strength of the effect

do anything?

it doesnt look like it would based on the code.

those shots you posted looked killer tho, i was wondering how you got it like that
 
The part to change is in float3(1.1f, 0.5f, 0.5f)

bright green:
float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);

paler green:
float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 1.1f), weight);

yellow:
float3 colorout = lerp(bwcolor, colorInput * float3(1.1f, 1.1f, 0.5f), weight);

purple:
float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 0.5f, 1.1f), weight);

darker purple:
float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 0.5f, 1.5f), weight);

etc etc
 

One3rd

Member
The part to change is in float3(1.1f, 0.5f, 0.5f)

bright green:
float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);
That does change the output color from red to green but doesn't change what the "focus" color is that will be used. Because if that I assume that the colorinput is stored as R,G,B but why are the values 0.5 for no color channel and 1.1 for all that color channel?

I took a page from you and tried changing the "colorInput.r" in the weight variable to something else. Looks like this is the color channel being used, changing this to "colorInput.b" results in all original blue colors to be changed to green. Now how to use this to mix our own source color?

Code:
float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput.b - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}

Edit: I think I got it, thanks for puting me on the right track. Not sure if this is the best way to do it but if we use the same code from the colorout value where it is being multiplied by a 3 value float we can specify what the red, green, and blue components of the source color will be. the code below changes all yellow to green.

Code:
float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput * float3(1.1f, 1.1f, 0.5f) - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}

Edit2: Didn't know this at the time but props to /r/TerrifyingCookie for the code and /r/PrydeRage for porting it to SweetFX.
 

Durante

Member
I had a neat idea for AO in DS2: instead of doing the blending in the plug-in, keep the in-game AO option on, suppress the in-game AO rendering and replace the AO buffer with my own. This would make the AO interact correctly with fog like the original AO (which is terribad otherwise) does.

Sadly, I don't have time to implement this right now. Just throwing it out there in case someone feels motivated.
 

Alo81

Low Poly Gynecologist
That does change the output color from red to green but doesn't change what the "focus" color is that will be used. Because if that I assume that the colorinput is stored as R,G,B but why are the values 0.5 for no color channel and 1.1 for all that color channel?

I took a page from you and tried changing the "colorInput.r" in the weight variable to something else. Looks like this is the color channel being used, changing this to "colorInput.b" results in all original blue colors to be changed to green. Now how to use this to mix our own source color?

Code:
float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput.b - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}

Edit: I think I got it, thanks for puting me on the right track. Not sure if this is the best way to do it but if we use the same code from the colorout value where it is being multiplied by a 3 value float we can specify what the red, green, and blue components of the source color will be. the code below changes all yellow to green.

Code:
float4 SinCityPass( float4 colorInput )
{
        colorInput = pow(colorInput, .45f);
        float3 bwcolor = dot(colorInput.rgb, 1.f.xxx) * 0.33333f;
        float weight = smoothstep(0.1f, 0.25f, colorInput * float3(1.1f, 1.1f, 0.5f) - bwcolor);
        bwcolor = pow(bwcolor * 1.1f, 2.f);
        float3 colorout = lerp(bwcolor, colorInput * float3(0.5f, 1.1f, 0.5f), weight);
        return pow(float4(colorout, 1.f), 2.2f);
}

Edit2: Didn't know this at the time but props to /r/TerrifyingCookie for the code and /r/PrydeRage for porting it to SweetFX.

Do you plan to implement the color changing values into the user setting section? As in, a "Color Emphasis" value for which original color to highlight, then an RGB "Color to replace with" value, for what color the final image should be displaying?
 

One3rd

Member
Do you plan to implement the color changing values into the user setting section? As in, a "Color Emphasis" value for which original color to highlight, then an RGB "Color to replace with" value, for what color the final image should be displaying?
I was thinking about that but wasn't sure where to start. I'm not entirely sure how the best way to do that would be but I guess even just exposing the input and output RGB values so they could be manually changed would be a start.
 
It's not operational yet. I need yet to figure out how to scale the AO render target so that it fits perfectly the aspect ratio that the host application (be it games or emulators I mean) is outputting at. Otherwise -and I didn't show the AO blended into the original picture for a good reason- you'd get misaligned pictures with a huge offset between the two :/

I know Durante cooked up a specific function to handle specific aspect ratios but I'm unable to make it work properly for some reason. I asked him about it so we'll see...

And the performance really sucks when AO is enabled. At 3840x3168 (gamecube original res x6) I get something like 10 fps. So that really motivated me to try harder at implementing a mip-mapped depth buffer to feed the AO shader with. Theoretically -and the paper mentions about it- it should be a "x7 performance increase" ! But the original DX11 (and even GLSL) shader has a lot of bitwise operators that aren't available in SM3.0 (the shader model used for DX9). So I had to go and nag Professor Morgan McGuire himself so he gives me pointers about how to convert these to SM3.0. He's been really helpful so far. I even submitted the full shader source-code to him not even asking for a review but to share in return, in case anyone needs it

Ah, I figured it was a long shot just because of no blended shots. But I'm glad to hear it's being worked on.
 
Top Bottom