FilterPostProcessor causing "pixel doubling"?

In my various tests with FilterPostProcessor (adding fog, directional shadows, FXAA or SSAO), I noticed that no matter what filter I add, the FPP always causes the display to be pixelated, to the point that resolution looks like it’s halved. It doesn’t really matter what filter I add. The only time this doesn’t happen is if I add an FPP with no filters.

Is there some setting I’m missing, or something I’m doing wrong?

To have your code would help.

Okay. Code looks like this:

[java]
FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
SSAOFilter ssaoFilter = new SSAOFilter(1f, 43.928635f, 0.32999992f, 0.6059958f);
fpp.addFilter(ssaoFilter);
viewPort.addProcessor(fpp);
[/java]

If I omit all of that, I get the normal scene (try with a Cube mesh). If I add the above code, I see massive pixelation of the scene. This happens with any filter (not just SSAOFilter).

Could you post a screen shot?

I’m -NOT- trying to berate you or arguing what you’re experiencing but how do you want us to help when the complain is about a visual result when we don’t have anything to judge. With a screenshot it would be much easier (hopefully) to say “This and that is the reason you’re getting this.” or “try this…” Etc.

Moral of the story: when you have something like that post the CODE and SCREENIES, because you will have to eventually. Make everyone’s life easier and do it right away.

:slight_smile:

Ask, and ye shall receive!
Without FPP:

With FPP (using SSAOFilter):

Now that I look at them side by side, it’s more like some form of antialiasing is applied by default, and then removed when the FPP is being used. Weird nonetheless.

EDIT: It’s also weird that FPP appears to be adding lots of triangles, which, being a postprocessor, it shouldn’t be doing…

EDIT EDIT: Actually, the extra polys are apparently being added by SSAOFilter. nevermind.

That’s because you use anti aliasing in the first screen shot.
You have to use fpp.setNumSamples(numberOfSamples);

@roach374 said: EDIT: It's also weird that FPP appears to be adding lots of triangles, which, being a postprocessor, it shouldn't be doing...

EDIT EDIT: Actually, the extra polys are apparently being added by SSAOFilter. nevermind.


SSAO renders the scene 1 additional time to render the screen normals. Your object is rendered twice. that’s why you have roughly twice the number of polygons

@nehon said: That's because you use anti aliasing in the first screen shot. You have to use fpp.setNumSamples(numberOfSamples);

Thanks nehon! calling setNumSamples(10) did the trick. Is there some performance impact I should be aware of? The javadoc is… sparse.

Also: I’m not actually applying any antialiasing myself in code. Is that something that happens automatically behind the scenes?

@nehon said: SSAO renders the scene 1 additional time to render the screen normals. Your object is rendered twice. that's why you have roughly twice the number of polygons

Interesting! I noticed this only happens with Lighting.j3md, though. Doesn’t happen with Unshaded or ShowNormals, even though the SSAOFilter “effects” are clearly visible. Any ideas why that might be?

@madjack said: Moral of the story: when you have something like that post the CODE and SCREENIES, because you will have to eventually. Make everyone's life easier and do it right away.

Yeah, sorry, I was on my phone at the time.

1 Like

Well…antialiasing has a performance impact yes, but google will tell you more about that than I could ever tell you.
You choose it when you launch the application (in the setting dialog)
Also 10 is not something you should use, usually it’s a power of 2 : 2,4,8,16. And not all card support up to 16. the higher the number the best the quality, but the worst the performances.
You can use FXAA instead of classic antialiasing it’s a lot cheaper, and you can even stack several filters for a better quality.

Thanks for the info, nehon! Huge help!

FXAA is all the rage now, although the only thing I have against it is that it’ll dull the colors a tiny bit. It’s not that obvious but it is there.