Of course none of this is linear, but the multiples are constant throughout Region A or Region B, which is what we are after.
Uh, did you read my post? That's what I was getting at later. Two points:
The bilinear / trilinear ratio is constant (as you say in the above quote by different words).
Yes, I was bringing up the point again that we have to be careful about the linearity and can't translate the trilinear vs bilinear argument to "real" units of texel fetches per pixel because of the nonlinearity combined with the dependance on the geometry of the scene. We could do it for a single infinite plane stretching to the horizon, though.
Its a flaw in the "rectangle with trapezoid screenspace regions" argument here. What if its an infinite plane? Then the regions don't shrink in size. What if the object does not start close enough to have a region that is bilinear or with the 1.25 ratio?
Scott C wrote:
In this case, Trilinear covers EXACTLY 5x the texel area per filtered pixel. At every point, it samples the bilinear filter texel area plus the next more detailed mip level, which is always 4x the detail in texel count. Bilinear filtering is not defined as sampling the "closest" mip level, but rather the mip level that is less than or equal to the screen LOD.
Check some games, and you'll find that isn't the case. Compare bilinear and trilinear here. This was also the topic of discussion above.
Those games then are changing their LOD bias and introducing aliasing.
If Bilinear is doing LOD bias, and trilinear is not, then our whole argument is thrown out because the 4:1 ratio does not hold. Trilinear effectively increases the detail without adjusting the LOD bias and introducing aliasing.
"Region B" for Bilinear may be "Region A" for trilinear on the same object due to the LOD difference.
Thus Hyp-X's diagrams are correct. BTW, n is 2 times the LOD. In your redrawn diagram for trilinear, you just divided everying by 2.
You didn't read my post. My units are in AREA. Each mip level is a factor of 4 apart in AREA. The first diagrams also had the ratio of 4. N = 1 is the optimal 1 texel maps to 1 pixel point. Any larger number = more texels in the pixel = aliasing. But actually, the nyquist criterion is that you sample at 2x the frequency you are trying to measure. In this case that would mean n (area) = screen pixel area /4.
This means that I was incorrect in my diagram, I didn't shift the regions far enough to the left!
It also means that the "more detailed" trilinear map is at most, = to the screen resolution.
I don't have time to redraw them now, but the ratio is still 5. The whole "1.25" ratio bit only appies to a specific LOD change between trilinear to bilinear.
I'll respond to your assumptions:
First many objects are in the distance, and it can't be said that the required mip levels don't fit in cache for these. In other words, the whole texture mip pyramid need not fit in cache, only the sub pyramid for the object. Only a certain fraction of the screen is made up of large objects (in screenspace) that have large textures.
In my assumption, either the majority is "close up" in which case there is a lot of bilinear filtering at max texture detail, or the scene is transitional (walls and floors extending away) where the anisotropy will adjust down the LOD quikly to easily cacheable mip levels.
Frequently close-up objects (foreground) usually have more, varying smaller textures.
Also, my 1K for a couple scanline calculation was wrong because of my improper LOD <>texel count calculation. It would be nearly 1/4 as much required for trilinear, meaning that even the TNT's 4K texel cache could fit a tile or two's worth of required texels in cache.
I'm inclined to say that we are groosly underestimating the effectiveness of the cache in today's environment because of two factors:
1: most surfaces create anisotripic LOD to pixel mappings, and trilinear / bilinear just go for the least detailed of the two screenspace dimensions. This decreases texel density per pixel and makes it even easier for sub mip pyramids to fit entirely in cache.
2:Newer GPU's support high anisotropy levels, and anisotropic filtering would require larger caches, thus, trilinear and bilinear on today's hardware probably caches amazingly well even across several tiles, so long as its the same surface of course.
I agree that the bandwidth difference in real life is probably on the order of 2 or slightly more.