• Register
Post feature Report RSS What is hybrid temporal-spatial anti-aliasing?

For 120+ Hz display devices, Brahma engine offers a very efficient anti-aliasing solution called 4xTSAA. Owing to subpixel precision of engine's geometry rasterization, we can shift entire frame by a fraction of pixel in any direction. Doing this and varying the direction on time basis, quickly shifting between four states, we can attain a smoother look with virtually NO performance penalty. The framerate must be stable though and perfectly vertically-synchronized.

Posted by on

What is hybrid temporal-spatial anti-aliasing?

For 120+ Hz display devices, Brahma engine offers a very efficient anti-aliasing solution called 4xTSAA. Owing to subpixel precision of engine's geometry rasterization, we can shift entire frame by a fraction of pixel in any direction. Doing this and varying the direction on time basis, quickly shifting between four states, we can attain a smoother look with virtually NO performance penalty. The framerate must be stable though and perfectly vertically-synchronized.

Recently I've bought a 144 Hz Full HD gaming monitor to test my engine on high refresh rates and 1080p resolution. Having 144 Hz opens a whole new world of rasterization, since pixels now can flicker so fast that it becomes unnoticeable. 4xTSAA is based on this phenomenon and resembles the near-forgotten interlaced scan, but with modern tech brings to whole new level, giving effectively 4K appearance on an ordinary Full HD screen, coupled with a higher refresh rate!

Unfortunately, so far I don't have a support for a high-quality output API which consistently does not skip rendered frames. I gave the engine a test with the Direct2D API, but this didn't solve occasional stuttering (frame skipping), causing other problems instead, so now I'm stuck with the legacy GDI output I've been using since 2006, emulating vsync with timers (which, however, is reasonably fast and offers maximum compatibility). Still I'm in a need of perfect vsync without any stuttering.

Brahma 4xTSAA field sampling diagram

When rendering an anti-aliased scene, frames are organized into four 'fields' cycling quickly with slight sampling shift for each field, creating the impression of a static anti-aliased picture if cycling is fast enough. This also removes the need for anisotropic texture filtering, since whole scene is anti-aliased. The sampling pattern is optimal for a raster display, since the samples have evenly spaced X and Y offsets, effectively raising resolution by a factor of four.

4xTSAA field sampling diagram

Post comment Comments
SPY-maps
SPY-maps - - 2,906 comments

Read everything above, but have to say, most i didn't understand. Way to technical for me, lol. All i did understand was that you are working on a form of efficient anti-aliasing solution for your Brahma engine called 4xTSAA. Anti-aliasing is very important these days, so your right to put in so much time and effort to get this right.

Much success,
Leon

Reply Good karma Bad karma+1 vote
punpcklbw Author
punpcklbw - - 42 comments

Thank you for your feedback. I've added a simple diagram to make things more clear.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: