Shaders/SMOOTHVISION
As with the pixel shader, the vertex shader onboard RV250 is nearly identical to that found on R200, supporting version 1.1. This is met with the support of 128 constant registers, allowing for the full number of operations to be performed. T&L performance with one light is in the 19-21 million vertices/sec range in 3Dmark 2001.
SMOOTHVISION
ATI's SMOOTHVISION technology is used in RV250 as well. It is in many ways similar to the anti-aliasing implementation found on Voodoo5, with some slight variations. Where Voodoo5 used a fixed jittered sampling position, SMOOTHVISION uses variable sampling, based on a select set of sampling patterns.
The human eye was designed in a way to be pattern sensitive. Patterns can easily be found, because they are typically very uniform, repeating identically over and over. Random noise is the opposite of a pattern, making it extremely difficult for the human eye to detect. The more random something is, the less likely it is to be noticed. This principle applies to anti-aliasing, with the more random a pattern, the less likely it is to be noticed. For example, one image can have a 6x ordered grid and another with a 4x random grid. Which will deliver a better result? Displaying noise, the 4x grid will have better results, going unnoticed by the eye. While the 6x grid is taking additional samples, these samples still remain in a uniform shape, making them easily noticed.
SMOOTHVISION makes a legitimate attempt at crossing the world of uniform patterns and noise. While definitely not noise, SMOOTHVISION provides several different sampling patterns to be chosen from. By doing this, a uniform pattern is no longer present; it becomes more difficult for the eye to detect. This provides a notable increase in anti-aliasing quality, with little to no variation in performance when compared to uniform sampling.
Anisotropic filtering
ATI's implementation of anisotropic filtering has certainly been a topic noteworthy of discussion. Anisotropic filtering is unique in that it filters in a non-uniform pattern, increasing overall quality and image accuracy. ATI's implementation is strictly bilinear in that it only filters within a single mip-map level. Other implementations, such as NVIDIA's, provide greater quality by using a trilinear anisotropic filter, filtering across mip levels.
ATI additionally provides a dynamic filtering implementation, meaning that at 64-taps (16x), implementation will provide a maximum of 64 samples, with some surfaces using a reduced number. This makes considerable sense as not all surfaces are of the same size and orientation, thus not necessitating the use of all 64 samples. With such an implementation, it is possible for the algorithm to miscalculate certain surfaces, not providing enough samples. This has been known to happen, but certainly it is not a common occurrence. With the performance advantage associated with this, it is seen to be a worthwhile implementation.