{"id":10638,"date":"2009-08-23T07:27:56","date_gmt":"2009-08-23T07:27:56","guid":{"rendered":"http:\/\/alienbabeltech.com\/main\/?p=10638"},"modified":"2009-09-16T14:38:42","modified_gmt":"2009-09-16T14:38:42","slug":"nvidia-geforce-gt200-series-anti-aliasing-investigation","status":"publish","type":"post","link":"http:\/\/alienbabeltech.com\/main\/nvidia-geforce-gt200-series-anti-aliasing-investigation\/","title":{"rendered":"nVidia GeForce GT200 Series Anti-Aliasing Investigation"},"content":{"rendered":"<p><!--pagetitle:Introduction & Setup--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Introduction<\/span><\/strong><\/span><\/p>\n<p>This is part three of a trilogy of articles investigating current AA techniques on modern hardware. In part one I compared the <a href=\"http:\/\/alienbabeltech.com\/main\/?p=3188\" target=\"_blank\">image quality<\/a> of ATi\u2019s and nVidia\u2019s latest hardware. In part two <a href=\"http:\/\/alienbabeltech.com\/main\/?p=7429\" target=\"_blank\">ATi\u2019s 4000 series<\/a> was covered in more detail. Now with part three I\u2019ll focus on nVidia\u2019s GT200 series, whose anti-aliasing algorithms are identical to that of the 8000 and 9000 series. For this particular article I\u2019ll use my <span style=\"color: #99ccff;\">GTX285<\/span>.<\/p>\n<p>While the purpose of this article is to compare nVidia\u2019s AA modes to each other, great care has been taken to make the article\u2019s format compatible with the ATi 4000 series investigation. That means you can compare the two articles if you wish, including the screenshots.<\/p>\n<p><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Hardware<\/span><\/strong><\/span><\/p>\n<ul>\n<li>Intel Core 2 Duo E6850 (reference 3 GHz clock). <\/li>\n<li>nVidia GeForce GTX285 (1 GB, reference clocks).<\/li>\n<li>4 GB DDR2-800 RAM (4\u00d71 GB, dual-channel). <\/li>\n<li>Gigabyte GA-G33M-DS2R (Intel G33 chipset, F7 BIOS). <\/li>\n<li>Creative X-Fi XtremeMusic.<\/li>\n<li>30\u201d HP LP3065 (maximum resolution 2560&#215;1600).<\/li>\n<\/ul>\n<p><strong><\/strong><\/p>\n<p><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Software<\/span><\/strong><\/span><\/p>\n<ul>\n<li>Windows XP 32 bit SP3.<\/li>\n<li>nVidia driver 186.18, high quality filtering, all optimizations off, LOD clamp enabled. <\/li>\n<li>DirectX August 2009.<\/li>\n<li>All games patched to their latest versions.<\/li>\n<\/ul>\n<p><strong><\/strong><\/p>\n<p><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Settings<\/span><\/strong><\/span><\/p>\n<ul>\n<li>16xAF forced in the driver, vsync forced off in the driver. <\/li>\n<li>AA forced either through the driver or enabled in-game, whichever works better. <\/li>\n<li>Highest quality sound (stereo) used in all games. <\/li>\n<li>All results show an average framerate.<\/li>\n<\/ul>\n<p><!--pagetitle:AA & MSAA Introduction--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Anti-Aliasing Introduction<\/span><\/strong><\/span><\/p>\n<p>In 3D graphics, aliasing occurs because of rasterization, the process of converting a scene from vector primitives (essentially infinite resolution) to screen space (finite resolution). Typical aliasing with 3D scenes includes shimmering, jagged edges, line crawling, wiggling surfaces, and similar.<\/p>\n<p>A higher resolution helps to some degree because there are more pixels to interpolate across, but it\u2019s still quite poor at reducing aliasing compared to current hardware anti-aliasing techniques.<\/p>\n<p>Current 3D hardware AA operates on the basic premise of sampling multiple times for a pixel (as opposed to using a single sample), and blending said samples to form the final pixel. The resulting smoother gradients reduce aliasing.<\/p>\n<p><strong><\/strong><\/p>\n<p><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Multi-Sampling Theory (MSAA)<\/span><\/strong><\/span><\/p>\n<p>Multi-sampling first debuted on nVidia\u2019s GeForce 3, and is the most popular hardware AA technique currently used in consumer space. This method takes the concept of super-sampling but decouples the shader and texture samples, thereby saving fillrate.<\/p>\n<p>It operates on the concept of rendering only the geometry at a higher resolution (as opposed to super-sampling which renders everything at a higher resolution), then calculating the final color based on whether multiple depth (Z) values fall on the edge of a polygon or not.<\/p>\n<p>The disadvantage of this method is that it can\u2019t address texture or shader aliasing (since it only anti-aliases polygon edges), but it\u2019s extremely fast compared to super-sampling, and still shows huge improvements in image quality.<\/p>\n<p>Generally speaking, unless you run a very slow GPU setup, you should try to run at least 2xAA, even if it means dropping the resolution a bit. Even 2xAA can provide a substantial improvement in image quality over no AA.<\/p>\n<p><!--pagetitle:nVidia's MSAA--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">nVidia\u2019s MSAA<\/span><\/strong><\/span><\/p>\n<p>As was mentioned earlier, MSAA debuted in consumer space with the GeForce 3 which offered 2x rotated grid and 4x ordered grid modes. Since then nVidia has improved the technique several times. The GeForce 4 series moved the distribution of samples from the top-left of the pixel to cover the entire pixel\u2019s area, while the GeForce 6 series introduced a rotated grid for the 4x mode.<\/p>\n<p>Starting with the 8000 series, nVidia introduced 8x sparse grid MSAA and briefly took the MSAA crown until ATi\u2019s 2000 series introduced the same thing a few months later. <\/p>\n<p>Here are the sample patterns from a GTX285 (these are identical across the entire 8000, 9000 and GT200 product lines). Note that nVidia\u2019s 8xQ setting is 8xMSAA.<\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10656\" title=\"Grid MSAA\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-msaa.png?resize=392%2C185\" alt=\"Grid MSAA\" srcset=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-msaa.png?resize=392%2C185 392w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-msaa-300x141.png 300w\" sizes=\"auto, (max-width: 392px) 100vw, 392px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>The green dots are shader\/texture samples, and in each case there\u2019s only one sampled at the pixel\u2019s center, as is typical with MSAA. The blue dots are geometry samples and you can see two, four and eight arranged in rotated and sparse grids. Both vendors do this because such a placement of samples ensures optimal coverage (maximum effective edge resolution).<\/p>\n<p><!--pagetitle:CSAA--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Coverage Sampling Anti-Aliasing (CSAA)<\/span><\/strong><\/span><\/p>\n<p>The 8000 series also introduced a new type of anti-aliasing called CSAA, using a new sample type called coverage. Coverage sampling is based around multi-sampling but further decouples information by removing Z (depth), stencil and color information, leaving only a yes\/no value as to whether the sample lies within a polygon or not. These values then affect the outcome of the final blended color. Generally this technique is very good on first-class polygon edges where the 16x setting can rival the quality of 16xMSAA, but at a fraction of the performance hit and storage requirements.<\/p>\n<p>However since additional Z\/stencil values aren\u2019t actually taken or stored (only whether the sample falls inside a polygon), CSAA loses effectiveness on edges shared by multiple polygons, and on stencil shadows. Should coverage sampling fail for a particular pixel, the scheme falls back to its base multi-sampling level.<\/p>\n<p>Here are the sample grids for the three CSAA modes (thanks to Beyond3D for the original images):<\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10655\" title=\"Grid CSAA\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-csaa.png?resize=390%2C180\" alt=\"Grid CSAA\" srcset=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-csaa.png?resize=390%2C180 390w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-csaa-300x138.png 300w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>Again the blue dots are multi-samples, while the red dots are coverage samples. Based on this information we can see that:<\/p>\n<p><span style=\"color: #99ccff;\">8x<\/span> = <span style=\"color: #99ccff;\">4x<\/span>MSAA + <span style=\"color: #99ccff;\">4x<\/span>CSAA.<br \/>\n<span style=\"color: #99ccff;\">16x<\/span> = <span style=\"color: #99ccff;\">4x<\/span>MSAA + <span style=\"color: #99ccff;\">12x<\/span>CSAA.<br \/>\n<span style=\"color: #99ccff;\">16xQ<\/span> = <span style=\"color: #99ccff;\">8x<\/span>MSAA + <span style=\"color: #99ccff;\">8x<\/span>CSAA.<\/p>\n<p>Note that nVidia counts multi-samples twice in their papers, once as multi-samples and once as coverage samples, so they list 8x as having eight coverage samples and 16x\/16xQ as having sixteen. While this is technically correct, it\u2019s also ambiguous so it makes sense to count samples based on their highest common denominator.<\/p>\n<p>Most games cannot activate these modes directly, but there are three ways you can use them. Firstly, you can force them directly from the control panel. This should work in most games where forced AA works.<\/p>\n<p>Another way is to set the control panel to <span style=\"color: #99ccff;\">enhance<\/span> and set one of the three CSAA modes.  Then set the game to use any level of AA (it doesn\u2019t matter what it is), and the driver will give the application your AA level bu<a href=\"http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/0x.png\"><\/a>t only on surfaces the game asks for. Thus the enhance setting allows the user to gain the benefit of AA modes games don\u2019t know about, without overriding how games perform AA on their surfaces. Note that enhance only works if the game sets a genuine MSAA level through the Direct3D\/OpenGL API, so it won\u2019t work with games that use custom shader-based AA.<\/p>\n<p>And finally, a handful of games like <em>Crysis<\/em> and <em>Half-Life 2: Episode 2<\/em> can set CSAA modes directly from the game.<\/p>\n<p><!--pagetitle:SSAA--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Combined Mode Anti-Aliasing (xS)<\/span><\/strong><\/span><\/p>\n<p>nVidia also offers full scene super-sampling on their single GPU configurations in the form of combined modes (xS). These modes combine traditional multi-sampling with ordered grid super-sampling to further enhance image quality. The super-sampling component in these modes is obtained by rendering the entire scene bigger and then scaling down.<\/p>\n<p>The notable advantage of super-sampling is that it anti-aliases all parts of the scene including shaders and textures, something pure edge-based schemes like MSAA and CSAA can\u2019t do. Another advantage of super-sampling is that it stacks with anisotropic filtering and can increase the clarity of texture filtering. We\u2019ll see an example of this later.<\/p>\n<p>nVidia has a range of super-sampling modes, but here are the three that make the most sense:<\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10657\" title=\"Grid SSAA\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-ssaa.png?resize=390%2C169\" alt=\"Grid SSAA\" srcset=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-ssaa.png?resize=390%2C169 390w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/grid-ssaa-300x130.png 300w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>There are eight, sixteen and thirty two blue dots representing the multi-samples, while multiple green dots (shader\/texture samples) confirm super-sampling is in operation. 32xS has a truly extraordinary sample count, but we can also see it has the same super-sampling component as 16xS.<\/p>\n<p>The components of these modes are as follows:<\/p>\n<p><span style=\"color: #99ccff;\">8xS<\/span> = <span style=\"color: #99ccff;\">8x<\/span>MSAA + <span style=\"color: #99ccff;\">2x<\/span>SSAA.<br \/>\n<span style=\"color: #99ccff;\">16xS<\/span> = <span style=\"color: #99ccff;\">16x<\/span>MSAA + <span style=\"color: #99ccff;\">4x<\/span>SSAA.<br \/>\n<span style=\"color: #99ccff;\">32xS<\/span> = <span style=\"color: #99ccff;\">32x<\/span>MSAA + <span style=\"color: #99ccff;\">4x<\/span>SSAA.<\/p>\n<p><!--pagetitle:TrAA--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Transparency Anti-Aliasing (TrAA)<\/span><\/strong><\/span><\/p>\n<p>As I covered in my <a href=\"http:\/\/alienbabeltech.com\/main\/?p=3188&amp;page=3\" target=\"_blank\">image quality comparison article<\/a>, TrAA is a method of anti-aliasing alpha (transparent) textures (e.g. vegetation, wire fences, etc), something regular MSAA cannot do. It works by resubmitting the texture multiple times into the pipeline, shifting the location of the sample each time, later blending the samples into one.<\/p>\n<p>nVidia&#8217;s TrAA has two modes: super-sampling and multi-sampling. <span style=\"color: #99ccff;\">Super-sampling<\/span> takes regular super-samples and anti-aliases the entire texture, while <span style=\"color: #99ccff;\">multi-sampling<\/span> only anti-aliases the edges of the texture that intersect with transparent areas. TrMS doesn\u2019t work in all games and its effects tend to be very subtle, so it\u2019s best used for noisy soft edges rather than ordered hard edges.<\/p>\n<p>When TrAA is in operation, it operates at the same precision as the base multi-sampling level, so it\u2019ll function just fine alongside CSAA, and its effects actually stack with the super-sampling component of the combined modes.<\/p>\n<p><!--pagetitle:Image Quality (MS\/CS\/SS)--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Image Quality (MSAA\/CSAA\/SSAA)<\/span><\/strong><\/span><\/p>\n<p>For the image quality comparison, I\u2019ve chosen an outside scene from the original <em>Far Cry<\/em>. Since AA\u2019s main benefit comes during movement, these images have been zoomed in order to better show differences. I\u2019d suggest loading the images into separate browser tabs and quickly switching between them. Also ensure browser image scaling is disabled.<\/p>\n<p style=\"TEXT-ALIGN:left\"><div id=\"attachment_10639\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i1.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/0x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10639\" class=\"size-thumbnail wp-image-10639 \" title=\"0x\" src=\"http:\/\/i1.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/0x.png?resize=150%2C150\" alt=\"0x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10639\" class=\"wp-caption-text\">0x<\/p><\/div> <div id=\"attachment_10640\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/2x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10640\" class=\"size-thumbnail wp-image-10640 \" title=\"2x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/2x.png?resize=150%2C150\" alt=\"2x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10640\" class=\"wp-caption-text\">2x<\/p><\/div> <div id=\"attachment_10641\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/4x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10641\" class=\"size-thumbnail wp-image-10641 \" title=\"4x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/4x.png?resize=150%2C150\" alt=\"4x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10641\" class=\"wp-caption-text\">4x<\/p><\/div>\n<div id=\"attachment_10642\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10642\" class=\"size-thumbnail wp-image-10642 \" title=\"8x\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8x.png?resize=150%2C150\" alt=\"8x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10642\" class=\"wp-caption-text\">8x<\/p><\/div>\n<div id=\"attachment_10643\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8xq.png\"target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10643\" class=\"size-thumbnail wp-image-10643\" title=\"8xQ\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8xq.png?resize=150%2C150\" alt=\"8xQ\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10643\" class=\"wp-caption-text\">8xQ<\/p><\/div>\n<div id=\"attachment_10645\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10645\" class=\"size-thumbnail wp-image-10645 \" title=\"16x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16x.png?resize=150%2C150\" alt=\"16x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10645\" class=\"wp-caption-text\">16x<\/p><\/div>\n<div id=\"attachment_10646\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16xq.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10646\" class=\"size-thumbnail wp-image-10646 \" title=\"16xQ\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16xq.png?resize=150%2C150\" alt=\"16xQ\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10646\" class=\"wp-caption-text\">16xQ<\/p><\/div>\n<div id=\"attachment_10644\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8xs.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10644\" class=\"size-thumbnail wp-image-10644  \" title=\"8xS\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/8xs.png?resize=150%2C150\" alt=\"8xS\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10644\" class=\"wp-caption-text\">8xS<\/p><\/div>\n<div id=\"attachment_10647\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16xs.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10647\" class=\"size-thumbnail wp-image-10647 \" title=\"16xS\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/16xs.png?resize=150%2C150\" alt=\"16xS\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10647\" class=\"wp-caption-text\">16xS<\/p><\/div>\n<div id=\"attachment_10648\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/32xs.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10648\" class=\"size-thumbnail wp-image-10648 \" title=\"32xS\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/32xs.png?resize=150%2C150\" alt=\"32xS\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10648\" class=\"wp-caption-text\">32xS<\/p><\/div>\n<p><span style=\"color: #99ccff;\">2xAA<\/span> and <span style=\"color: #99ccff;\">4xAA<\/span> both provide noticeable image quality gains across all four edges over 0xAA and 2xAA, respectively.<\/p>\n<p><span style=\"color: #99ccff;\">8x<\/span> is slightly smoother than 4xAA on all four edges.<\/p>\n<p><span style=\"color: #99ccff;\">8xQ<\/span> looks slightly smoother than 8x on edges 1 and 4, but slightly worse on edge 3.<\/p>\n<p><span style=\"color: #99ccff;\">16x<\/span> is slightly better than 8xQ on surface 4.<\/p>\n<p><span style=\"color: #99ccff;\">16xQ<\/span> has the best looking edge 3 of the four CSAA modes, but edge 4 looks slightly worse than 16x\u2019s.<\/p>\n<p><span style=\"color: #99ccff;\">8xS<\/span> is better than 8x on all four edges, and is about the same as 8xQ overall. However the benefits of full scene super-sampling come into play too; the tree in the top left corner is smoother, and also the hut\u2019s straw roof texture gains definition and clarity. This increased sharpness provides contrary evidence to those that claim super-sampling blurs 3D scenes because in this instance it\u2019s doing the exact opposite.<\/p>\n<p><span style=\"color: #99ccff;\">16xS<\/span> is about the same as 16xQ on the four edges, but perhaps slightly better on edge 4. Compared to 8xS the roof texture gains even more clarity and the tree gets smoother too, courtesy of the super-sampling component increasing over 8xS.<\/p>\n<p><span style=\"color: #99ccff;\">32xS<\/span> looks about the same as 16xS except with edge 4, where it\u2019s slightly smoother. Thus 32xS provides the smoothest chair edge we\u2019ve seen today. The tree and roof texture remain identical to 16xS because super-sampling component is the same with both modes.<\/p>\n<p>It should be worth noting that the edges in this scene represent the best case for CSAA, so the scheme is allowed to reach its full potential. In other scenes however (such as shared polygon edges and\/or stencil shadows), the image quality will be closer to its base multi-sampling level, so results may vary. In these instances, 8xQ provides a more consistent gain in image quality than either 8xAA or 16xAA. Nevertheless, CSAA still represents a clear upgrade over 4xAA.<\/p>\n<p>Getting back to the tree, even though it received some AA from the xS modes, I\u2019m still going to test it with TrAA at it was designed with exactly this kind of scenario in mind.<\/p>\n<p><!--pagetitle:Image Quality (TrAA)--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Image Quality (TrAA)<\/span><\/strong><\/span><\/p>\n<p>The tree is actually a transparent texture, likely a result of the game\u2019s LOD system optimizing performance by reducing workload at distances. Because MSAA and CSAA only affect polygon edges, none of them impact the tree. The combined modes can because they anti-alias the entire scene, but let\u2019s see how the tree looks with TrAA. Note that I could\u2019ve used another scene with more alpha content, but by using the same scene, it becomes clearer how these AA techniques all come together as a total package.<\/p>\n<p style=\"TEXT-ALIGN:left\"><div id=\"attachment_10658\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr0x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10658\" class=\"size-thumbnail wp-image-10658  \" title=\"Tr0x\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr0x.png?resize=150%2C150\" alt=\"0xTrAA\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10658\" class=\"wp-caption-text\">0xTrAA<\/p><\/div> <div id=\"attachment_10659\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr2x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10659\" class=\"size-thumbnail wp-image-10659 \" title=\"Tr2x\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr2x.png?resize=150%2C150\" alt=\"Tr2x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10659\" class=\"wp-caption-text\">2xTrAA<\/p><\/div> <div id=\"attachment_10660\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr4x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10660\" class=\"size-thumbnail wp-image-10660 \" title=\"Tr4x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr4x.png?resize=150%2C150\" alt=\"4xTrAA\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10660\" class=\"wp-caption-text\">4xTrAA<\/p><\/div>\n<div id=\"attachment_10661\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr8x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10661\" class=\"size-thumbnail wp-image-10661 \" title=\"Tr8x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/tr8x.png?resize=150%2C150\" alt=\"8xTrAA\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10661\" class=\"wp-caption-text\">8xTrAA<\/p><\/div>\n<p><\/p>\n<p>Even with just the thumbnails, you can clearly see changes to the color gradients as each level of TrAA is applied, but feel free to load the larger images if you like.<\/p>\n<p><!--pagetitle:CSAA Anomalies--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">CSAA Anomalies<\/span><\/strong><\/span><\/p>\n<p>I mentioned in the CSAA section that if coverage sampling fails for a given pixel, it falls back to the base multi-sampling mode. However in practice I\u2019ve found a few rare cases where the AA quality is much lower than the base MSAA level.<\/p>\n<p>Here\u2019s an example from a zoomed shadow edge from <em>Doom 3<\/em>. You can see 16x actually looks closer to AA being off, while 4xAA is much smoother in comparison. <\/p>\n<p style=\"TEXT-ALIGN:left\"><div id=\"attachment_10652\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-0x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10652\" class=\"size-thumbnail wp-image-10652 \" title=\"Doom 0x\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-0x.png?resize=150%2C98\" alt=\"0x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10652\" class=\"wp-caption-text\">0x<\/p><\/div> <div id=\"attachment_10653\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-4x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10653\" class=\"size-thumbnail wp-image-10653  \" title=\"Doom 4x\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-4x.png?resize=150%2C98\" alt=\"4x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10653\" class=\"wp-caption-text\">4x<\/p><\/div> <div id=\"attachment_10654\" style=\"width: 160px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-16x.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10654\" class=\"size-thumbnail wp-image-10654  \" title=\"Doom 16x\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/doom-16x.png?resize=150%2C98\" alt=\"16x\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-10654\" class=\"wp-caption-text\">16x<\/p><\/div>\n<p><\/p>\n<p>This example is indeed visible to the naked eye while gaming; I actually spotted this while playing through <em>Doom 3<\/em> again at 2560&#215;1600, so I stopped the game to take some screenshots.<\/p>\n<p>I\u2019ll repeat that these situations are extremely rare, but are nevertheless interesting because CSAA theory can\u2019t explain them.<\/p>\n<p><!--pagetitle:1680x1050--><!--nextpage--><span style=\"color: #99ccff;\"><span style=\"text-decoration: underline;\"><strong>1680&#215;1050<\/strong><\/span><\/span><\/p>\n<p>Now it\u2019s time to see how these AA modes perform on nVidia\u2019s current flagship single card. After seeing the 16xS figures below, you\u2019ll quickly see why I didn\u2019t bother testing 32xS.<\/p>\n<p>Also I\u2019m not going to benchmark TrAA for the simple reason that it depends entirely on the scene as to what kind of performance hit you\u2019ll experience. The odd fence or grating won\u2019t impact performance much, but large amounts of vegetation will incur a steep performance hit. For this reason, you\u2019ll quickly know if your TrAA setting is playable or not just by playing your game.<\/p>\n<p>To make it easier to digest the information, I\u2019ve color coded the results into groups based on AA type. <span style=\"color: #ffcc99;\">MS<\/span> = multi-sampling, <span style=\"color: #ffff99;\">CS<\/span> = coverage sampling, while <span style=\"color: #ccffcc;\">SS<\/span> represents the combined modes (super-sampling).<\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10649\" title=\"Chart 16\" src=\"http:\/\/i1.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-16.png?resize=546%2C625\" alt=\"Chart 16\" srcset=\"http:\/\/i1.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-16.png?resize=546%2C625 546w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-16-262x300.png 262w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>In <em>Call of Duty 4<\/em>, 16xAA is almost the same speed as 8xAA, and neither of them is much slower than 4xAA.<\/p>\n<p>In <em>Far Cry 2<\/em> we see the same thing with 16xAA and 8xAA that we saw in <em>Call of Duty 4<\/em>. We also see 8xS being about the same speed as 16xQ.<\/p>\n<p><!--pagetitle:1920x1200--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">1920&#215;1200<\/span><\/strong><\/span><\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10650\" title=\"Chart 19\" src=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-19.png?resize=546%2C626\" alt=\"Chart 19\" srcset=\"http:\/\/i2.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-19.png?resize=546%2C626 546w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-19-261x300.png 261w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>In <em>Bioshock<\/em>, 8xAA and 16xAA are the same speed. Also 8xS is faster than 16xQ, and 4xAA is faster than 2xAA, interestingly.<\/p>\n<p>In <em>Fear 2<\/em> we again see 8xAA and 16xAA being almost even in terms of performance.<\/p>\n<p><!--pagetitle:2560x1600--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">2560&#215;1600<\/span><\/strong><\/span><\/p>\n<p style=\"TEXT-ALIGN: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10651\" title=\"Chart 25\" src=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-25.png?resize=545%2C826\" alt=\"Chart 25\" srcset=\"http:\/\/i0.wp.com\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-25.png?resize=545%2C826 545w, http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/chart-25-197x300.png 197w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" data-recalc-dims=\"1\" \/><br class=\"spacer_\" \/><\/p>\n<p>In <em>Doom 3<\/em> we yet again observe identical performance from 8xAA and 16xAA. Also there\u2019s a huge performance hit from 8xQ which confirms the OpenGL performance issue on nVidia cards with this mode still exists. Additionally, 8xS is much faster than 16xQ.<\/p>\n<p>In <em>Far Cry 1<\/em> we again see 8xAA and 16xAA being very close in performance, and not much slower than 4xAA. We also see 8xS being faster than 16xQ.<\/p>\n<p>And lastly, in <em>Half-Life 2<\/em>, we again see 16xAA and 8xAA being close in performance and not much slower than 4xAA. We also see 8xS being hugely faster than 16xQ, and for the first time 8xQ is faster than 8xAA and 16xAA.<\/p>\n<p><!--pagetitle:Conclusion--><!--nextpage--><span style=\"color: #99ccff;\"><strong><span style=\"text-decoration: underline;\">Conclusion<\/span><\/strong><\/span><\/p>\n<p>Some interesting findings have been made in this investigation. Firstly, 16xAA is a viable mode that improves 4xAA if you can\u2019t reach 8xQ. It provides a visible benefit over 4xAA while not being much slower. It\u2019s also basically the same speed as 8xAA so if you have enough performance, skip 8xAA and go straight to 16xAA; there\u2019s really no reason to use 8xAA. CSAA can very rarely exhibit much poorer image quality than theory would suggest, but don\u2019t let this put you off using 16xAA because it\u2019s really quite good overall.<\/p>\n<p>Secondly, 16xQ is hard to swallow. Its edge quality isn\u2019t much better than 8xS, but the benefits of full scene super-sampling from 8xS are much more apparent than marginally increased edge AA at such levels. Also based on other tests I\u2019ve run in the past, 8xS is much faster than 16xQ in the majority of situations, especially in older games. 8xS is also especially important in OpenGL games because nVidia\u2019s TrAA doesn\u2019t function in that API.<\/p>\n<p>And lastly, 32xS is quite a fringe mode. It\u2019s really too slow to use except in rare cases of very old games that are restricted to low resolutions. I would have also liked nVidia to increase the super-sampling component over 16xS to really make it stand out. Detectable edge improvements tend to rapidly diminish after 4xAA, but extra super-sampling is always useful.<\/p>\n<p>This concludes the current trilogy of image quality articles focusing on AA, but hopefully the next round of DX11 cards from ATi and nVidia will give me something more to write about. I hope you\u2019ve found the results of this investigation as interesting as I have.<\/p>\n<p><strong><\/strong><\/p>\n<blockquote>\n<p><span style=\"color: #99ccff;\">Please join us in our <a href=\"http:\/\/alienbabeltech.com\/abt\/index.php\" target=\"_blank\">Forums<\/a><\/span><\/p>\n<p><span style=\"color: #99ccff;\">Follow us on <a href=\"http:\/\/twitter.com\/alienbabeltech\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/twitter.com\/alienbabeltech', 'Twitter']);\" target=\"_blank\">Twitter<\/a><\/span><\/p>\n<p><span style=\"color: #99ccff;\">For the latest updates from ABT, please <a href=\"http:\/\/alienbabeltech.com\/main\/?feed=rss2\" target=\"_blank\">join our RSS News Feed<\/a><\/span><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p><a href=\" http:\/\/alienbabeltech.com\/main\/?p=10638\"><img decoding=\"async\" align=top title=\"Author: BFG10K\" src=\"http:\/\/alienbabeltech.com\/main\/wp-content\/uploads\/2009\/08\/Article-Image.PNG\"><\/a><\/p>\n","protected":false},"author":5,"featured_media":10850,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7814,7],"tags":[1703,1392,901,900],"class_list":["post-10638","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-technology","tag-1703","tag-aa","tag-gt200","tag-gtx285"],"_links":{"self":[{"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/posts\/10638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/comments?post=10638"}],"version-history":[{"count":0,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/posts\/10638\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/media\/10850"}],"wp:attachment":[{"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/media?parent=10638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/categories?post=10638"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/alienbabeltech.com\/main\/wp-json\/wp\/v2\/tags?post=10638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}