next up previous contents
Next: 5.4 Fine Tuning Up: 5 Texture Mapping Previous: 5.2 MIPmap Generation

5.3 View Dependent Filtering

OpenGL specifies an isotropic filter for texture minification. This means that the amount of filtering done along the s and t axes of the texture is the same, and is the maximum of the filtering needed along each of the two axes individually. This can lead to excessive blurring when a texture is viewed at an angle. If it is known that a texture will always be viewed at a given angle or range of angles, it can be created in a way that reduces overfiltering.

 

table790

Suppose a textured square is rendered as shown in the left of Figure 12. The texture is shown in the right. Consider the fragment that is shaded dark. Its ideal footprint is shown in the diagram of the texture as the dark inner region. But since the minification filter is isotropic, the actual footprint is forced to a square that encloses the dark region. A mipmap level will be chosen in which this square footprint is properly filtered for the fragment; in other words, a mipmap level will be selected in which the size of this square is closest to the size of the fragment. That mipmap is not level zero but level 1 or higher. Hence, at that fragment more filtering is needed along t than along s, but the same amount of filtering is done in both.

 

table810

To avoid this problem, we do the extra filtering along t ourselves when we create the texture, and make the texture have the same width but only half the height. See Figure 13. The footprint now has an aspect ratio that is more square, so the enclosing square is not much larger, and is closer to the size to the fragment. Level 0 will be used instead of a higher level. Another way to think about this is that by using a texture that is shorter along t, we reduce the amount of minification that is required along t.


next up previous contents
Next: 5.4 Fine Tuning Up: 5 Texture Mapping Previous: 5.2 MIPmap Generation

David Blythe
Thu Jul 17 21:24:28 PDT 1997