Wow this is impressive for 3 month's work.
I see you are suffering from the dreaded "Thin line on the left side of the screen copies the right side". To save you the headache here is how to fix it (Should be fixed in the next release of XEffects also).
If you are using D3D, find the line in EffectHandler.cpp that looks like this (It's near line 558 but I modified this file for the next release so I'm not 100% what line number it is):
Code: Select all
" OUT.TexCoords.x = 0.5 * (1.0 + Position.x - (1 / screenX)); \n"
Change it to:
Code: Select all
" OUT.TexCoords.x = 0.5 * (1.0 + Position.x + (1.0 / screenX)); \n"
And if you are using OpenGL change the lines that look like this (Near line 531):
Code: Select all
" tCoords.x = 0.5 * (1.0 + gl_Vertex.x - (1.0 / float(screenX))); \n"
" tCoords.y = 0.5 * (1.0 + gl_Vertex.y - (1.0 / float(screenY))); \n"
To:
Code: Select all
" tCoords.x = 0.5 * (1.0 + gl_Vertex.x); \n"
" tCoords.y = 0.5 * (1.0 + gl_Vertex.y); \n"
This should fix the lines on the edge of the screen.
For the Anti-Aliasing there are 2 solutions. You could use the "copyBackbufferTo" function provided in
this thread to copy the backbuffer to an RTT so that you can render with MSAA on the backbuffer and then do post processing (In D3D9 it doesn't seem possible to do MSAA directly on the RTT). You would have to modify the update() function of XEffects to render to no render target first, and then use that function to copy the backbuffer to "ScreenRTT".
The second option is to supply large dimensions to the XEffect's constructor's "screenRTTSize" param and then take 4 neighbouring samples in the first post-processing effect of your post-processing list. This should be adequate enough but may perform and look worse than the first technique. Perhaps I should provide a sample for this in the next release of XEffects.
Cheers