Patent ID: 8217953

Claim:
A method of performing anisotropic texture filtering using a texture defined in a texel coordinate system having u and v axes and a scene defined in a pixel coordinate system having x and y axes, the method comprising, for an initial sample point in the texture at u,v coordinates: determining a line of anisotropy, including determining au, av values for the line of anisotropy as follows: au =max( du/dx, du/dy ) av =max( dv/dx, dv/dy ) where du/dx is a ratio between texel coordinates along the u axis and pixel coordinates along the x axis, du/dy is a ratio between texel coordinates along the u axis and pixel coordinates along the y axis, dv/dx is a ratio between texel coordinates along the v axis and pixel coordinates along the x axis, and dv/dy is a ratio between texel coordinates along the v axis and pixel coordinates along the y axis; determining n sample points along the line of anisotropy, including determining ui, vi coordinates for each sample point i, where i=0 to n−1, as follows: ui=u +( i*au /( n− 1)− au/ 2) vi=v +( i*av /( n− 1)− av/ 2) determining a length ulen between adjacent sample points along the u axis and a length vlen between adjacent sample points along the v axis as follows: u len= au /( n− 1) v len= av /( n− 1) determining a stride value as follows: stride= v len*( Uw*D )+ u len* D where Uw is a width of the texture in texels along the u axis and D is a data size for each texel in memory; for each of the n sample points, loading texture data for such sample point and applying a filter to the first sample point using the loaded texture data for such sample point to generate a sample result; for each of the n sample points after a first sample point, using the stride value to initiate a prefetch of the texture data for such sample point prior to attempting to load the texture data for such sample point; and averaging the sample results for the n sample points.