Assuming you want to go back to forward rendering... I am sure many developers find it attractive to use their high end optimized deferred renderers on Vita as well (assuming it has robust multiple render target support).Vita doesn't need it as much due to PowerVR magic. 3DS is likely below the baseline for programability on the PU at least.
Great work Sebbi!Hope you can show us some comparison pictures when its all said and done:smile:fxaa3_8 is slightly slower than the optimized (luma/ifAll/microcode) version of fxaa2, but it provides better quality. The new shader seems to be actually slightly ALU bound. Cutting one instruction before the branch should make it TEX bound again (and pretty much identical in performance to the optimized fxaa2 -- but with higher quality). Have to play around with it a bit
I have to send Timothy big thanks for making antialiasing possible in 60 fps console games. GPU based MLAA was slightly too much (1.6ms = 10% of frame time).
Assuming you want to go back to forward rendering... I am sure many developers find it attractive to use their high end optimized deferred renderers on Vita as well (assuming it has robust multiple render target support).
Do you think FXAA could technically be deemed as a more optimized version of QAA considering the slight blurring of textures?
Do you think FXAA could technically be deemed as a more optimized version of QAA considering the slight blurring of textures?
But other than the slight blur, FXAA does a great job cleaning up the jaggies and like ultragpu said, it saves performance.
Why FXAA ?
Wanted something which handles sub-pixel aliasing better than MLAA, something which didn't require compute, something which runs on DX9 level hardware, and something which runs in a single full-screen pixel shader pass. Basically the simplest and easiest thing to integrate and use.
FXAA Limits
Johan Andersson had a great way of describing this, MLAA like methods snap features to pixels. There is no sub-pixel information as input to these kind of post filters. FXAA does however detect and reduce the contrast of sub-pixel features so the pixel snapping is less visibly distracting. FXAA is by default tuned to be mild. Optionally turning this sub-pixel contrast reduction filter all the way up can reduce the detail in the image, but result in a more "movie" like experience.
What about surface normal aliasing?
Typically rough and detailed normal textures filter into a flat surface, often keeping a strong amount of specular reflection. Combine this with a rapidly changing triangle surface normal of small pixel or sub-pixel sized features, and horrid shader normal aliasing will result! FXAA's sub-pixel contrast reduction filter can only help a little in this situation, normal aliasing tends to flicker temporally, which is the primary artifact seen by the viewer. NVIDIA's Endless City Demo (which uses an early version of FXAA) is a good example of this: combining a high amount of finely tessellated features and application of a simple environment map,
think someone from Sony ATG claimed that the PS3 implementation of MLAA doesn't do that. So far only game that does that on PS3 is Red Faction Armageddon, but that might be just due to the software upscaling implementation of the game. The rest like Shift2, and Alice looks just as sharp on the system with MLAA compare to 360 if I remember correctly. All the FXAA sample we have so far seems to blur the overall IQ in all cases.
add:"movie" like experience. as in CG movie look?
With subpixel features, they can only be rendered as a single pixel mixing intensities of the surfaces within it, meaning size is denoted by intensity. eg. consider a range of white dots, stars perhaps, on a dark ground. If each of these dots is pure white, without any subpixel sampling resolution they'll either appear as white dots or not be rendered. With limitless supersampling, each point will appear as a pixel of brightness relative to its size.In FXAA, its edge detection compares a pixel with its neighbors to estimate the final color values. There is no equation solving or feature preservation per se. The output should be reasonably "correct" nonetheless. You set thresholds for local contrast and subpixel aliasing test/heuristics. I guess that's why it's fast and can be done in one pixel shading pass. It works for subpixel aliasing because the contrast of the features is lowered (filtered/blurred ?)...
I wonder if a surface couldn't have a property defined whether to apply FXAA to it or not? A mask could be rendered and the FXAA conditionally applied, so certain aspects like a skybox could be unfiltered.