Ok, so we know where the discontinuity boundaries
are located, but now we need to perform the filtering of the
texture samples within the specified regions.
There were two main goals we had in mind when we were developing our filtering approach. First, the filtering had to be fast because it was intended for real-time applications. Second, it had to be able to be able to be implemented on current graphics hardware.
To make it fast, we decided to work with a small, local filter kernel that only uses the color values at the corners of the current cell to reconstruct the color value. You see, like in any reconstruction problem we are free to use an arbitrary number of samples in our reconstruction kernel. By limiting ourselves to only the samples in the four corners of the cell, we make the algorithm fast. The results of this approximation are quite reasonable, as we shall see in the live demonstration in a few minutes.
Likewise, we decided to use bilinear interpolation as the filter basis because it is fast and maps well to graphics hardware. After all, it is already built-in to the hardware for standard texturing!