Texture filtering
Revision as of 07:23, 13 March 2014 by Net Bastard (talk | contribs)
In computer graphics, texture filtering or texture smoothing is the method used to smooth textures used in 3D models. Some consoles use texture filtering.
In emulation, texture filtering can be applied even if the original console did not use it. Many emulators support such features.
Consoles
Console | Texture Filtering | Types of filtering |
---|---|---|
Super Nintendo | ✗ | |
3DO | ✗ | ? |
Atari Jaguar | ✗ | |
Sega Saturn | ✗ | |
PlayStation | ✗ | |
Nintendo 64 | ✓ | Three-sample bilinear |
Sega Dreamcast | ✓ | Bilinear, trilinear, anisotropic |
PlayStation 2 | ✓ | Bilinear, trilinear |
GameCube | ✓ | Bilinear, trilinear, anisotropic |
Xbox | ✓ | Bilinear, trilinear, anisotropic |
Nintendo DS | ✗ | ? |
PlayStation Portable | ✓ | Bilinear, trilinear |
Wii | ✓ | Bilinear, trilinear, anisotropic |
Filtering type | What it does | Pros | Cons |
---|---|---|---|
Nearest neighbor | Basically, it looks the exact same as having no filter whatsoever. |
|
|
Nearest Neighbor with Mipmapping | Exactly what it says on the tin: Nearest-neighbor filtering with mipmapping. Mipmapping is basically level of detail for textures. The farther away a texture is in a 3D space, the lower the resolution is. This can continue until the texture is completely flat. |
|
|
Bilinear | This linear filtering method uses color data from the pixels in a nearest-neighbor texture, and combines multiple bits of color data in order to replace some of the pixels with an averaged-out version of the colors, so that the colors gradually switch rather than jump to a new color. |
|
|
Trilinear | This linear filtering method does the same thing as bilinear filtering, except it passes through twice, giving a smoother gradient. |
|
|
Anisotropic | Uses oddly-shaped copies of texture parts in order to smooth out pixelated/blurred edges in nearest neighbor/linearly filtered images. Higher sample amounts (e.g. 4x, 8x, 16x) will shape the textures into more complex shapes as needed. |
|
|
HQx | A texture scaling algorithm. Scales up a nearest-neighbor version of the texture and fills in the gaps with copies of the pixels next to said gaps. |
|
|
2xSaI | A texture scaling algorithm. Scales the texture and fills edges in with a mixture of pixels from the source, and randomly-guessed colors. |
|
|
xBR | A modified version of HQx. It detects edges better, which works better for curved lines, or for slopes that are greater than/less than 45 degrees. |
|
|
Images
Further reading
Wikipedia's entry on Texture Filtering
Forum post from the creator of xBR, explaining how the algorithm works (Warning: is slightly hard to read due to the amount of jargon and big words)
A blog entry on creating a hybrid texture filter for PPSSPP.