Previous | Next --- Slide 60 of 70
Back to Lecture Thumbnails
zhaur

What's the difference between neighboring "screen samples" and "fragments"? (Whats the difference between this and the previous slide?)

motoole2

From the book titled Fundamentals of Computer Graphics, "fragment is a term that describes the information associated with a pixel prior to being processed in the final stages of the graphics pipeline" (including color, scene depth, texture coordinates, and so on). Here, the phrase should be the same on both slides: texture coordinates values of neighboring screen samples / fragments means the same thing.

hesper

I don't understand the way we are computing mipmap level or I guess mipmaps in general. At first glance I thought we would be using different levels of mipmap value for one specific pair of x and y to figure out the value of the texture at this point but clearly that's not the case.

motoole2

@hesper Actually, that sounds about right. In this figure, (x,y) are the pixel coordinates, and (u,v) refers to the corresponding texture coordinates. To determine the correct mipmap level, we look at how perturbing the pixel coordinate (x,y) changes the UV coordinate (u,v).

L refers to the differential change between samples in (u,v) texture space, when moving from pixel (x,y) to a neighboring pixel, e.g., (x+1,y). If L <= 1, then we can safely sample our texture map without worries about aliasing. Otherwise, L is too large and this could result in aliasing effects since the sampling frequency is too low. Therefore, we use L to select a down-filtered version of our texture map from a pre-computed mip-map.

Also recall that, when (u,v) are not integer coordinates, we use bilinear filtering to interpolate between four values from our texture map. Similarly, if L is also not an integer, we interpolate between the values computed at two different mip-map levels (resulting in an interpolation of eight values from our texture map); this is referred to as trilinear filtering, and discussed later in this slide deck. So yes, this results in interpolating between two levels of mipmap values for any particular pixel.

As an aside, this webpage has interactive apps for understanding the effect of having no mipmap, bilinear only, and trilinear filtering--which I found pretty neat.

hesper

I see. Thank you!