Subpixel Morphological Antialiasing

I’ve put together a jME implementation…


The hard work is done, all 3 discrete steps have been implemented, it kinda half works, which is great, what remains to do is some coercing of image formats and some gamma related stuff to get it working correctly. I’m having trouble with this.

I’m pushed for time right now so I’m putting it up as is in case anyone else wants to take over, or redo it from scratch and have a starting point.



Nice, i’ll take a look at this. It was on my to do list anyway.

ha nice.
Gama correction in jme is handled on the hardware. The post processing textures will all be in linear color space.

is there any way around this ?

mhhh, why?Well you can set the colorspace of the texture to SRGB.
Explain what you want to do, maybe I can guide you more efficiently.

@nehon I sent a message to your account…


ho I don’t use this anymore I’m now on


Ok I’m starting with this soon. I made a pull request to use gradle for the project, did anything change in the meantime?

I spent one evening at this so far.

isRequiresSceneTexture() should return false instead of true.
RGBA8 is ok for every filter’s pass.
Make sure that you adjust your resolution in SMAALib.glsllib file, it is #-defined.
Make sure that WrapMode is set to EdgeClamp for area and search textures.

Edge detection is working well. NeighborhoodBlendingPass generates some pixels on black texture. Finally I have some AA on my screen but I’m not sure if it is enough. It is much more heavy (when using luma or color edge detection) than FXAA but the results are comparable.

So I’m waiting for someone who wants to play with it to compare the results.

Y’all got my curiosity up, so I went off and read the authors’ SMAA paper… let me just say WOW. Quality that’s competitive with MSAA and SSAA at a (often small) fraction of the cost? Sign me up! I’m very excited to see that this is being implemented for jME. You all are awesome. :wink:

Thanks guys, I will review in the next couple of days and push another update.

Pull request accepted.