Image Quality – New AA Features
Custom Filtered Anti-Aliasing
As mentioned on the previous page, the AMD HD 2000 series features a new AA method dubbed CFAA: custom filtered anti-aliasing. This allows the driver (and probably the game designer as well) to dynamically adjust how the various pixels are selected and sampled for AA.
In the current model used by AMD and NVIDIA for years, each pixel is sampled in a “box” form that keeps the color samples from going outside that particular pixel. In the example above, we are looking at a standard 8x MSAA filter here: the eight points are eight color samples that weighted and blended to create the final color you’ll see on-screen.
In one of two new options that AMD has included with the HD 2000 series, the 12x CFAA options expands the number of samples and the area of those samples by looking “outside the box” so to speak. In this case, the AA method is actually testing 12 colors and should present a more accurate look for the game or rendered image.
Here we see 16x CFAA that takes it one step further and expands the circle of points being sampled.
What has great potential for AMD’s CFAA is that these are programmable and thus future driver revisions can bring new AA methods as they are developed. Another that AMD is bringing to us with the launch is an adaptive edge detection filter that can perform edge detection on the image and use more samples along that edge’s direction in an attempt to produce a better quality image. AMD has combined the two “tent” filters and the edge detect AA into some new CFAA methods that are going to be in the production drivers for the HD 2000 cards:
Oops, ignore that pop up on the right there…focus on the content. Users will be able to enabled CFAA methods from 4x to 24x with these combined filters. The 4x CFAA will actually be performing a 2x MSAA with a narrow tent skew while the 24x CFAA will perform 8x MSAA (standard) with the edge detection filter.
These new filters have the potential to be great additions in image quality, though you can see how it might get confusing — the “24x” in 24x CFAA really has nothing to do with 24 samples nor does the 16x CFAA going to always have 16 color samples.
Another new image quality feature that AMD is introducing with the R600 is the first ever tessellation engine to hit a consumer graphics card.
With tessellation, you basically start with a very rough polygon mesh (on the left) and the computationally apply rules to them to come up with the model on the right — much more detailed. The idea here is that you can increase the quality of the model with processing power rather than with additional memory requirements of extra vertex points being stored and loaded. This also means that dynamic model generation is possible as well with tessellation.
In this sample of tessellation from Valve, by combining a low quality model with the tessellation method and then applying a displacement map to it, you can add tremendous amounts of realism to characters and items without as much memory overhead. These tessellation methods have been used in the film industry for quite some time, at least in theory, as surface subdivision will always add more detail to anything being rendered if done so properly.
The AMD R600 architecture is the first to actually add a tessellator step to the pipeline though it is an optional feature for the programmer to use. None of this can or will be done on existing work and it will take the effort of the developers to program directly for it should they want to use it for their games. AMD may soon be getting some help in this area as well as they claim future API changes will expose the tessellation process to the DirectX model in the future.
In general, tessellation can allow for higher quality animation and models with a lower cost, but we’ll need to see some developer work on this first before I can get excited about its implementation here.