(03-26-2015, 03:27 AM)Blyss Sarania Wrote: I gotta say, Asmodean's FXAA is so amazing. It is quite literally the only shader based AA I've ever seen that isn't a bloody mess. It has practically no blur and actually anti aliases reasonably well. It's got nothing on MSAA, but for games that can't use that, it's amazing.
I told him the same thing his FXAA blow nvidia implementation away. I kind wish i should set nvidia's FXAA up like his so i could use in swtor and not deal with horrid bluring nvidia's has
He uses very little sub-pixel AA in his implantation for the standard setup, that's why it AA's pretty well. (I believe the default is 0.25 out of 1.00) You could do 0.00 for straight up only edge detection, but I have a hard time noticing the difference as it is.
You could mimic the result with PC games by using SMAA and turning off anything related to sub-pixel aliasing. FXAA is pretty dodgy, or at least, in my experience.
03-26-2015, 09:00 PM (This post was last modified: 03-26-2015, 09:01 PM by Blyss Sarania.)
(03-26-2015, 02:24 PM)Bigbenn01 Wrote: FXAA is pretty dodgy, or at least, in my experience.
Exactly, which is why I've been so impressed with Asmodean's.
Here is a comparison. In Persona 3, it doesn't AA the environment that well, but it does well on the characters. These are giant PNG for maximum quality(4x+FXAA):
Off:
On:
Look around Mitsuru's hair and skirt, and the tables for examples where it does quite well. Unfortunately, it does miss e.g. the light fixtures, but I'll accept that as a trade off for no blur.
03-26-2015, 10:36 PM (This post was last modified: 03-26-2015, 10:37 PM by dogen.)
(03-26-2015, 09:00 PM)Blyss Sarania Wrote: Exactly, which is why I've been so impressed with Asmodean's.
By dodgy I think he meant it has worse coverage. FXAA was designed to be almost as cheap as possible to run, and as a result doesn't handle long edges as well as smaa and cmaa.
So if you configure smaa in a similar way you'll still end up with higher quality.
+ // Hack to avoid black line in various games (ace combat/mana khemia/colin 3).
+ if (m_userhacks_align_sprite_X) {
+ if (m_vt.m_primclass == GS_SPRITE_CLASS) {
+ size_t count = m_vertex.next;
+ GSVertex* v = &m_vertex.buff[0];
+ for(size_t i = 0; i < count; i += 2) {
+ int x = v[i+1].XYZ.X;
+ int ox = context->XYOFFSET.OFX;
+ // Transform i.d into i.9375 (int12:4 format). It avoid wrong vertical line
+ // generated by upscaling.
+ v[i+1].XYZ.X = ((x-ox) | 0xF) + ox;
+ }
+ }
+ }
+
+
//
DrawPrims(rt->m_texture, ds->m_texture, tex);
diff --git a/plugins/GSdx/GSRendererHW.h b/plugins/GSdx/GSRendererHW.h
index 405257a..19b87f6 100644
--- a/plugins/GSdx/GSRendererHW.h
+++ b/plugins/GSdx/GSRendererHW.h
@@ -35,6 +35,8 @@ private:
bool m_reset;
int m_upscale_multiplier;
int m_userhacks_skipdraw;
+
+ bool m_userhacks_align_sprite_X;
I wonder if this works with Ar tonelico, where the face sprites are messed up with any kind of upscaling? I'll have to try once I get Visual Studio reinstalled.
Upscaling generates a lots of accuracy issue (so far, input texture too small / input primitive too small / wrong window offset). My hack increases the size of the sprite without increase the mapped texture size. Texture will be a little stretched. I'm afraid it will be horrible for small spirit.
Anyway, if you can generate me a gs dump of Ar tonelico, I will give it a look.