[RELEASED] MadGoat SSAA and Resolution Scale

Hello everyone !

MadGoat SSAA & Resolution Scale is now 50% off as part of the Asset Store Spring Sale!

2 Likes

SSAA & Resolution Scale 2.0.8 is live on asset store!
Whats new in 2.0.8

  • Fixed issue causing SSAA to throw invalid screen resolution errors on initialization in HDRP
  • Minor fixes to ensure initial compatibility with HDRP 8.x.x
  • Minor fixes to ensure initial compatibility with URP 8.x.x
1 Like

Hi, thank for your bringing us this amazing AA asset.

Previous (some time 2 weeks ago), I was still able to download and install the MadGOat SSAA & Resolution Scale into my Unity project(s).

Today, I encountered a new issue, as it can be seen on the screenshot, it says ā€œFailed to import package with error: Couldnā€™t decompress packageā€. I have manually removed the downloaded package from my computer, and redownload it again, the situation is still occurring. For this test, I am using Unity2019.2.19f1 with HDRP setup.

Do you think I may have missed anything or any suggestions about how could we get this fixedā€¦?

Best wishes, Zi

Sorry for the inconvenience. Seems like the latest patch we pushed went corrupted during upload to asset store servers. We try to solve this as fast as possible.

The issue should now be fixed!

Thanks for bringing this to our attention and sorry once again for the inconvenience :slight_smile:

P.S. make sure to delete the old package from the asset store cache on your drive before downloading the new one to avoid issues.

Hi Raul, thank you so much for fixing this - I will give it a try asap and see how does it go :slight_smile:

At the meantime, Unity2019.3.6f1 onwards officially supports HDRP for VR, do you think we can use MadGoat AA for it (SteamVR)?

Cheers, Zi

The SSAA VR script on its own should work on any SRP, however our custom image filters are not implemented on HDRP and even URP for VR (mostly due to how unstable VR and its API was on SRPs) so downsampling filtering will fall back to whatever the SRP uses internally to resize textures (iirc bilinear).

This being said, the supersampling itself should work on VR, but filtering and postprocessing AA will be limited to pipeline defaults. If you find any issues with it and it doesnā€™t work at all please let me know and we can figure this out.

P.S. Thanks for letting me know about VR being marked as stable, I wasnā€™t aware of this. Will definitely look into it.

A small sneak peek of some awesome new features coming in 2.1.0

  • Partial TSSAA support for built-in pipeline (makes use of post processing stack v2 at the moment, a proprietary implementation will probably come in future versions)

  • Support for VR SinglePass Instanced rendering

  • Support for URP Camera Stacking (no sneak peek for this yet - under construction)

  • New sharpen feature - brings back a great amount of texture detail that gets lost in filtering and Post AA


    (open pictures in full size for comparison)

  • Greatly improved upsampling render quality by allowing for post processing AA and sharpening with resolution scales under 100%


    (open pictures in full size for comparison)

- New operation mode for rendering at fixed resolutions - Useful for benchmarks etc.

The big update should be dropping in the upcoming weeks if nothing bad comes up! Also donā€™t hesitate to give us feedback or ideas :slight_smile:

ā€“ Raul

3 Likes

Woo! Super exciting! Canā€™t wait!

1 Like

Hi @Raul_T ,

Iā€™ve been having some trouble with the API. In my game options I have a simple checkbox to enable or disable dynamic resolution scaling. When enabled the mode should be set to Adaptive with limits 0.5f - 1.5f. When disabled the resolution should be fixed at 100%. Here is the code Iā€™m using:

        Debug.Log("Dynamic res changed: " + dynamicResolutionChanged);
        if(dynamicResolutionChanged && madGoatSSAA)
        {
            if(dynamicResolution)
            {
                Debug.Log("Dynamic resolution enabled, adaptive");
                madGoatSSAA.SetAsAdaptive(0.5f, 1.5f, Filter.BICUBIC, 0.8f, 1f);

            }
            else
            {
                Debug.Log("Dynamic resolution disabled, fixed");
                madGoatSSAA.SetAsScale(1f);
            }
            dynamicResolutionChanged = false;
        }

This is the log output when my scene is first started with the SSAA component visible. As you can see the mode should be set to Adaptive, however nothing changes on the component and it remains in the default state.

I then disabled dynamic resolution in my game options. This seemed to set the component correctly however Iā€™m not sure why the operation mode changed to ā€œCustomā€ rather than ā€œResolution Scaleā€.

I then re-enabled dynamic resolutions in my options and as you can see the mode was not set to adaptive however the filter was set.

This doesnā€™t seem right. Any idea what is going on here?

EDIT: To add on an additional question, how does adaptive resolution with target 60 FPS decide to enter supersampling mode when V-Sync is enabled? As this locks the framerate to 60 I get the impression it will never supersample.

Hey!

Sounds like a bug with the API and Iā€™ll have to look more into it to be sure what happens there. Iā€™ll let you know as soon as I find anything :slight_smile:

And for the other question, seems like youā€™re right. Iā€™m shocked nobody (including me) ever noticed or reported this before. Iā€™ll see what I can do about this.

Thanks for reporting!

1 Like

No problem. If anyone faces this issue in the meantime as a workaround Iā€™ve added two SSAA components to my camera, one adaptive and the other fixed. Now I just toggle the components enabled status depending on the checkbox state. This only works for me because I have set configurations, if the player is allowed to adjust target refresh rate / scaling limits it wonā€™t work for you.

Hello again!

The adaptive API issue is due to a line of code in the API methods that somehow went missing with some previous update and slipped through our pre-release tests. You can fix it by adding this to each SetAsAdaptive function in the SSAA scripts:

InternalRenderMode = RenderMode.AdaptiveResolution;

For example:
5963726--639506--upload_2020-6-10_19-5-42.png

As for the vsync targeting issue, Iā€™m working on something and Iā€™ll get back to you soon :slight_smile:

P.S. Iā€™ll push a 2.0.9 patch with both fixes and some other fix of a postprocessingstack integration issue reported on discord ASAP

2 Likes

Thanks, just tested and this fixed the issue. Looking forward to the vsync update :slight_smile:

I came up with something to support vsync target framerate, could you check this out?
Replacing the

protected IEnumerator UpdateAdaptiveRes() {...}

with the following in MadGoatSSAA.cs should do the trick:

protected IEnumerator UpdateAdaptiveRes() {
    yield return new WaitForSeconds(UnityEngine.Random.Range(2, 5));
    if (InternalRenderMode == RenderMode.AdaptiveResolution) {
        var compFramerate = AdaptiveResTargetVsync ? Screen.currentResolution.refreshRate : AdaptiveResTargetFps;
        if (PerfSampler.CurrentFps < compFramerate - 5) {
            InternalRenderMultiplier = Mathf.Clamp(InternalRenderMultiplier - 0.1f, AdaptiveResMinMultiplier, AdaptiveResMaxMultiplier);
        }
        else if (PerfSampler.CurrentFps >= compFramerate + (AdaptiveResTargetVsync ? -1 : 10)) {
            InternalRenderMultiplier = Mathf.Clamp(InternalRenderMultiplier + 0.1f, AdaptiveResMinMultiplier, AdaptiveResMaxMultiplier);
        }
    }

    if (enabled) StartCoroutine(UpdateAdaptiveRes());
}

This will allow the plugin to supersample as long as the framerate matches the refreshrate. Will also be included in the 2.0.9 patch.

Hello there, Unity 2019 LTS, Iā€™ve been experimenting with the asset and I got 2 questions:

  1. For some reason, whenever I try to apply motion blur (PPS v2) the whole image becomes very blurry
  2. Is it possible to use the asset with PC games? I heard that it can be pretty heavy for gaming

Hello!

  1. The issue you are talking about will get fixed in patch 2.0.9 that I mentioned some posts before.
  1. Not sure if you are the same person, but earlier I explained to someone over discord how the SSAA works and how the performance scales in regards to games:
1 Like

SSAA & Resolution Scale 2.0.9 is live on asset store!
Whats new in 2.0.9

  • Fixed issue with API causing adaptive mode to not be set correctly via code
  • Fixed issue causing adaptive mode to not super-sample when using vsync as target
  • Fixed issue causing SSAA to break motion blur (Fix requires PostProcessing Stack v2 integration to be enabled in extensions tab)
1 Like

SSAA & Resolution Scale 2.0.10 is live on asset store!

Whats new in 2.0.10

  • Fixed issue causing SSAA to not initialize correctly when instancing a new camera from existing one
  • Fixed issue causing SSAA to not initialize correctly when disabling and re-enabling camera component
  • Fixed deprecated code errors on 2019.4+
1 Like

SSAA & Resolution Scale is now on sale at 50% off on asset store!
Check it out at LINK