All Topics  
Texture filtering

 

   Email Print
   Bookmark   Link






 

Texture filtering



 
 
In computer graphics
Computer graphics

Computer graphics are graphics created by computers and, more generally, the representation and manipulation of pictorial data by a computer....
, texture filtering is the method used to determine the texture color for a texture mapped
Texture mapping

Texture mapping is a method for adding detail, surface texture, or colour to a computer-generated imagery or 3D model. Its application to 3D graphics was pioneered by Dr Edwin Catmull in his Ph.D....
 pixel
Pixel

In digital imaging, a pixel is the smallest item of information in an image. Pixels are normally arranged in a 2-dimensional grid, and are often represented using dots, squares, or rectangles....
, using the colors of nearby texel
Texel (graphics)

A texel, or texture element is the fundamental unit of texture space, used in computer graphics. Textures are represented by arrays of texels, just as pictures are represented by arrays of pixels....
s (pixels of the texture). In short, it blends the texture pixels together by breaking them up into tinier pixels. Another term for texture filtering is called texture smoothing. There are many methods of texture filtering, which make different trade-offs between computation
Computation

Computation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning....
al complexity and image quality.






Discussion
Ask a question about 'Texture filtering'
Start a new discussion about 'Texture filtering'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computer graphics
Computer graphics

Computer graphics are graphics created by computers and, more generally, the representation and manipulation of pictorial data by a computer....
, texture filtering is the method used to determine the texture color for a texture mapped
Texture mapping

Texture mapping is a method for adding detail, surface texture, or colour to a computer-generated imagery or 3D model. Its application to 3D graphics was pioneered by Dr Edwin Catmull in his Ph.D....
 pixel
Pixel

In digital imaging, a pixel is the smallest item of information in an image. Pixels are normally arranged in a 2-dimensional grid, and are often represented using dots, squares, or rectangles....
, using the colors of nearby texel
Texel (graphics)

A texel, or texture element is the fundamental unit of texture space, used in computer graphics. Textures are represented by arrays of texels, just as pictures are represented by arrays of pixels....
s (pixels of the texture). In short, it blends the texture pixels together by breaking them up into tinier pixels. Another term for texture filtering is called texture smoothing. There are many methods of texture filtering, which make different trade-offs between computation
Computation

Computation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning....
al complexity and image quality. Since texture filtering is an attempt to find a value at some point given a set of discrete samples at nearby points, it is a form of interpolation
Interpolation

In the mathematics subfield of numerical analysis, interpolation is a method of constructing new data points within the range of a discrete set of known data points....
.

Application

Texture filtering is a cheap approximation to anti-aliasing
Anti-aliasing

In digital signal processing, anti-aliasing is the technique of minimizing the distortion artifacts known as aliasing when representing a high-resolution signal at a lower resolution....
. Soft textures, especially height maps, look better when interpolated.

The need for filtering

During the texture mapping process, a 'texture lookup' takes place to find out where on the texture each pixel center falls. Since the textured surface may be at an arbitrary distance and orientation relative to the viewer, one pixel does not usually correspond directly to one texel. Some form of filtering has to be applied to determine the best color for the pixel. Insufficient or incorrect filtering will show up in the image as artifacts
Artifact (observational)

In natural science and signal processing, an artifact is any perceived distortion or other data error caused by the instrument of observation....
 (errors in the image), such as 'blockiness', jaggies
Jaggies

"Jaggies" is the informal name for aliasing artifacts in raster images, often caused by non-linear mixing effects producing high-frequency components and/or missing or poor anti-aliasing filtering prior to sampling....
, or shimmering.

There can be different types of correspondence between a pixel and the texel/texels it represents on the screen. These depend on the position of the textured surface relative to the viewer, and different forms of filtering are needed in each case. Given a square texture mapped on to a square surface in the world, at some viewing distance the size of one screen pixel is exactly the same as one texel. Closer than that, the texels are larger than screen pixels, and need to be scaled up appropriately - a process known as texture magnification. Farther away, each texel is smaller than a pixel, and so one pixel covers multiple texels. In this case an appropriate color has to be picked based on the covered texels, via texture minification. Graphics APIs
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 such as OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
 allow the programmer to set different choices for minification and magnification filters.

Note that even in the case where the pixels and texels are exactly the same size, one pixel will not necessarily match up exactly to one texel - it may be misaligned, and cover parts of up to four neighboring texels. Hence some form of filtering is still required.

Mipmapping

Mipmap
Mipmap

In 3D computer graphics texture filtering, MIP maps are pre-calculated, Optimization collections of images that accompany a main texture, intended to increase rendering speed and reduce aliasing artifacts....
ping is a standard technique used to save some of the filtering work needed during texture minification. During texture magnification, the number of texels that need to be looked up for any pixel is always four or fewer; during minification, however, as the textured polygon moves farther away potentially the entire texture might fall into a single pixel. This would necessitate reading all of its texels and combining their values to correctly determine the pixel color, a prohibitively expensive operation. Mipmapping avoids this by prefiltering the texture and storing it in smaller sizes down to a single pixel. As the textured surface moves farther away, the texture being applied switches to the prefiltered smaller size. Different sizes of the mipmap are referred to as 'levels', with Level 0 being the largest size (used closest to the viewer), and increasing levels used at increasing distances.

Filtering methods

This section lists the most common texture filtering methods, in increasing order of computational cost and image quality.

Nearest-neighbor interpolation

Nearest-neighbor interpolation is the fastest and crudest filtering method — it simply uses the color of the texel closest to the pixel center for the pixel color. While fast, this results in a large number of artifacts - texture 'blockiness' during magnification, and aliasing
Aliasing

In statistics, signal processing, computer graphics and related disciplines, aliasing refers to an effect that causes different continuous signals to become indistinguishable when sampling ....
 and shimmering during minification.

Nearest neighbor with mipmapping

This method still uses nearest neighbor interpolation, but adds mipmapping — first the nearest mipmap level is chosen according to distance, then the nearest texel center is sampled to get the pixel color. This reduces the aliasing and shimmering significantly, but does not help with blockiness.

Bilinear filtering

Bilinear filtering
Bilinear filtering

Bilinear filtering is a texture filtering method used to smooth Texture mappings when displayed larger or smaller than they actually are.Most of the time, when drawing a textured shape on the screen, the texture is not displayed exactly as it is stored, without any distortion....
 is the next step up. In this method the four nearest texels to the pixel center are sampled (at the closest mipmap level), and their colors are combined by weighted average
Weighted mean

The weighted mean is similar to an arithmetic mean , where instead of each of the data points contributing equally to the final average, some data points contribute more than others....
 according to distance. This removes the 'blockiness' seen during magnification, as there is now a smooth gradient of color change from one texel to the next, instead of an abrupt jump as the pixel center crosses the texel boundary. Bilinear filtering is almost invariably used with mipmapping; though it can be used without, it would suffer the same aliasing and shimmering problems as its nearest neighbor.

Trilinear filtering

Trilinear filtering
Trilinear filtering

Trilinear filtering is an extension of the bilinear filtering texture filtering method, which also performs linear interpolation between mipmaps....
 is a remedy to a common artifact seen in mipmapped bilinearly filtered images: an abrupt and very noticeable change in quality at boundaries where the renderer switches from one mipmap level to the next. Trilinear filtering solves this by doing a texture lookup and bilinear filtering on the two closest mipmap levels (one higher and one lower quality), and then linearly interpolating
Linear interpolation

Linear interpolation is a method of curve fitting using linear polynomials. It is heavily employed in mathematics , and numerous applications including computer graphics....
 the results. This results in a smooth degradation of texture quality as distance from the viewer increases, rather than a series of sudden drops. Of course, closer than Level 0 there is only one mipmap level available, and the algorithm reverts to bilinear filtering.

Anisotropic filtering

Anisotropic filtering
Anisotropic filtering

In 3D computer graphics, anisotropic filtering is a method of enhancing the image quality of Texture filtering on surfaces that are at Dutch angle with respect to the camera where the projection of the texture appears to be non-orthogonal....
 is the highest quality filtering available in current consumer 3D graphics cards
Graphics processing unit

A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
. It evolved because both bilinear and trilinear filtering sample a square from the texture, which is only correct if the viewer is looking at the texture head-on. This results in blurriness when the textured surface is at an oblique angle - a very common case is the floor as it recedes into the distance. Anisotropic filtering corrects this by sampling in the correct trapezoid
Trapezoid

In geometry, a trapezoid or trapezium is a quadrilateral with twoparallel sides. The term “trapezoid” is used in North America, while the term “trapezium” is prevalent in Britain....
 shape according to view angle. The resulting samples are then trilinearly filtered to generate the final color.

See also

  • Texture atlas
    Texture atlas

    In 3D computer graphics, a texture atlas is a large Texture mapping "atlas" which contains many unrelated sub-textures. The sub-textures can be rendered by modifying the texture coordinates of the atlas....