3
$\begingroup$

Nearest interpolation between 2 texels mean to take the texel whose center is nearest to a given coordinate to draw or, in other words, the texel the coordinate is matching.

Linear interpolation between 2 texels mean to mix the colors of them using more of the nearest texel and less of the others according to the distance to a certain coordinate.

Nearest interpolation between 2 mipmap levels consist in to take the mipmap whose size fits better the size of the image to draw

But I cannot understand how linear interpolation works with mipmap levels.

$\endgroup$
4
$\begingroup$

It's called trilinear interpolation. You first do a bilinear interpolation of the higher-res texture, then do a bilinear interpolation on the lower-res texture, then interpolate between the 2 results. The weight of the final interpolation is based on where between the 2 textures your Z-coordinate falls. If 0 is fully the low-res texture and 1 is fully the high-res texture, then you can use the standard glsl mix() function to combine the two:

result = (highres texture color * weight) + (lowres texture color * (1.0 - weight));
$\endgroup$
  • $\begingroup$ You are talking about GL_LINEAR_MIPMAP_LINEAR filtering method, but if you use GL_NEAREST_MIPMAP_LINEAR instead then you first do a nearest interpolation of the higher-res and lower-res textures, and then mix the resulting colors giving more preference to the nearest mipmap and less preference to the furthest. Am I correct? $\endgroup$ – 4dr14n31t0r Th3 G4m3r Mar 3 '17 at 0:30
  • 1
    $\begingroup$ Actually, for nearest, you would just pick either the high res or low res texture (which ever is nearest), and then within that texture do a normal 2D nearest-neighbor look-up. $\endgroup$ – user1118321 Mar 3 '17 at 0:51
2
$\begingroup$

You might find the 1983 paper that introduced this**, i.e. Lance Williams' "Pyramidal Parametrics" informative.

You can ignore the scheme, in Figure 1, he used for the layout of the MIP maps as I doubt any hardware, at least in the last 20+ years, used that approach.

** (Actually, Williams *may* have described the technique at an earlier SIGGRAPH (1981) as part of tutorial/course but I've never been able to get hold of a copy)

$\endgroup$
  • 1
    $\begingroup$ Fantastic reference. Always fascinating to read original papers which introduced new technologies that we all but take for granted these days. $\endgroup$ – Dan Mar 3 '17 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.