to hazelwood:

not quite.

unless you choose to use nearest, you’ll always end with some combination of filtering.

min applies when a projected texel is smaller than a pixel, mag when it is bigger so, analyzing each case:

min=GL_LINEAR / mag=GL_LINEAR

when texels being shrinked, you will get aliasing, similar to nearest sampling, but *a little better* since interpolation evaluates to a better estime of the real pixel color… but all depends on the texture itself.

when texels being enlarged, a linear filter is used, and you won’t see texel as “quads under perspective projection” but colors will shade smoothly.

min=GL_LINEAR / mag=GL_NEAREST

when texel enlarges, you get the quads.

min=GL_NEAREST_MIPMAP_NEAREST / mag=GL_NEAREST

as texel shrinks, the rasterizer access the appropriate mipmap, and takes one sample from it.

you get some aliasing because of the nearest sampling, but thanks to the prefiltered mipmap, it will not be that prominent.

when texel enlarges, you get the quads.

min=GL_NEAREST_MIPMAP_LINEAR / mag=GL_NEAREST

as texel shrinks, the rasterizer lerps between two mipmap levels: this will prevent you from seeing where one mip ends and begins the other.

but still, as you take one sample per mipmap, you get some aliasing.

when texel enlarges… you got it.

min=GL_LINEAR_MIPMAP_NEAREST / mag=GL_LINEAR

texel shrinks, and you get almost no aliasing because of 4 samples per mipmap, but you can see when the rasterizer chooses the nearest mipmaps.

but as texel enlarges, the story is smooth.

this is normally the setup when a game says “triliear disabled” or something.

min=GL_LINEAR_MIPMAP_LINEAR / mag=GL_LINEAR

the real trilinear sampling.

with a total of 8 samples per pixel during minification, almost no aliasing find the way to your display, and texel magnification is smooth.

so, the three “modes” will be:

nearest sampling - at most 1 texel being sampled

min=GL_NEAREST / mag=GL_NEAREST

bilinear sampling - at most 4 samples

min=GL_LINEAR / mag=GL_LINEAR

trilinear - at most 8 samples

min=GL_LINEAR_MIPMAP_LINEAR / mag=GL_LINEAR

…btw, these are the modes i usually employ in my apps, but all depend on what you wish to do.

about anisotropy, quick answers: yes / don’t think so.

long answers:

you know that anisotropic filtering is an attempt to cope with the fact that the image of a pixel in texture space is pratically never a square (isotropic sampling).

instead it resembles a warped trapezoid, one with every side bent someway.

anisotropic sampling approximate this shape with a rectangle, thus leading to potentially more than 8 samples per texel, because if you sample 2 texels on the s direction, you could need to sample 2*n on the t direction.

it all depend on the texel orientation.

if you say you minify in nearest mode, AF won’t come in… because you’re not filtering in the end.

if you say you’re minifying with linear interpolation, AF will kick in trying to approximate the pixel projection in texture space and you will sample the texture at least 4 times, at most 4*n depends on your settings.

by adding mipmaps too, the total samples will be 50% more: the region of interest in the next mipmap level is exactly half the area.

so you understand that if no filtering is in use, AF is useless… since it is a way of filtering.