Difference between revisions of "Texture filtering"
m (Protected "Texture filtering" ([Move=Allow only administrators] (indefinite))) |
FosterHaven (talk | contribs) (ce'd lead, added hatnote, and adjusted wikipedia link) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[File:Nearest_Neighbor_2x_versus_HQ2x.png|thumb|300px|A comparison between nearest neighbor scaling and HQ2x scaling]] | [[File:Nearest_Neighbor_2x_versus_HQ2x.png|thumb|300px|A comparison between nearest neighbor scaling and HQ2x scaling]] | ||
+ | :''This article is about smoothing techniques that may be present even on original hardware. For the process of replacing textures to improve their visual fidelity or other aesthetic reasons, see [[Texture Packs]].'' | ||
− | + | '''[[wikipedia:Texture filtering|Texture filtering]]''' refers to the methods used to smooth the textures of a 3D model. Every home console after the [[Nintendo 64 emulators|Nintendo 64]] is able to do it, including every modern PC and Android device. This makes it useful in emulation, where it can be applied to emulators for consoles that did not originally have it through various emulators that support it. | |
− | |||
− | |||
==Consoles== | ==Consoles== | ||
Line 12: | Line 11: | ||
|- | |- | ||
| style="text-align:left;" |[[Super Nintendo emulators|Super Nintendo]] | | style="text-align:left;" |[[Super Nintendo emulators|Super Nintendo]] | ||
− | |✗ | + | |{{✗}} |
| | | | ||
|- | |- | ||
| style="text-align:left;" |[[3DO emulators|3DO]] | | style="text-align:left;" |[[3DO emulators|3DO]] | ||
− | |✗ | + | |{{✗}} |
|? | |? | ||
|- | |- | ||
| style="text-align:left;" |[[Atari Jaguar emulators|Atari Jaguar]] | | style="text-align:left;" |[[Atari Jaguar emulators|Atari Jaguar]] | ||
− | |✗ | + | |{{✗}} |
| | | | ||
|- | |- | ||
| style="text-align:left;" |[[Sega Saturn emulators|Sega Saturn]] | | style="text-align:left;" |[[Sega Saturn emulators|Sega Saturn]] | ||
− | |✗ | + | |{{✗}} |
| | | | ||
|- | |- | ||
| style="text-align:left;" |[[PlayStation emulators|PlayStation]] | | style="text-align:left;" |[[PlayStation emulators|PlayStation]] | ||
− | |✗ | + | |{{✗}} |
| | | | ||
|- | |- | ||
| style="text-align:left;" |[[Nintendo 64 emulators|Nintendo 64]] | | style="text-align:left;" |[[Nintendo 64 emulators|Nintendo 64]] | ||
− | |✓ | + | |{{✓}} |
|Three-sample | |Three-sample | ||
|- | |- | ||
| style="text-align:left;" |[[Sega Dreamcast emulators|Sega Dreamcast]] | | style="text-align:left;" |[[Sega Dreamcast emulators|Sega Dreamcast]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear, anisotropic | |Bilinear, trilinear, anisotropic | ||
|- | |- | ||
| style="text-align:left;" |[[PlayStation 2 emulators|PlayStation 2]] | | style="text-align:left;" |[[PlayStation 2 emulators|PlayStation 2]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear, Anisotropic | |Bilinear, trilinear, Anisotropic | ||
|- | |- | ||
| style="text-align:left;" |[[GameCube emulators|GameCube]] | | style="text-align:left;" |[[GameCube emulators|GameCube]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear, anisotropic | |Bilinear, trilinear, anisotropic | ||
|- | |- | ||
| style="text-align:left;" |[[Xbox emulators|Xbox]] | | style="text-align:left;" |[[Xbox emulators|Xbox]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear, anisotropic | |Bilinear, trilinear, anisotropic | ||
|- | |- | ||
| style="text-align:left;" |[[Nintendo DS emulators|Nintendo DS]] | | style="text-align:left;" |[[Nintendo DS emulators|Nintendo DS]] | ||
− | |✗ | + | |{{✗}} |
|? | |? | ||
|- | |- | ||
| style="text-align:left;" |[[PlayStation Portable emulators|PlayStation Portable]] | | style="text-align:left;" |[[PlayStation Portable emulators|PlayStation Portable]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear | |Bilinear, trilinear | ||
|- | |- | ||
| style="text-align:left;" |[[Wii emulators|Wii]] | | style="text-align:left;" |[[Wii emulators|Wii]] | ||
− | |✓ | + | |{{✓}} |
|Bilinear, trilinear, anisotropic | |Bilinear, trilinear, anisotropic | ||
|} | |} | ||
Line 162: | Line 161: | ||
Super_Mario_All-Stars_with_5xBR.png|SNES game with 5xBR texture scaling | Super_Mario_All-Stars_with_5xBR.png|SNES game with 5xBR texture scaling | ||
</gallery> | </gallery> | ||
− | |||
==Further reading== | ==Further reading== | ||
− | + | * [https://web.archive.org/web/20140904180543/http://board.byuu.org/viewtopic.php?f=10&t=2248 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) | |
− | + | * [http://blog.metaclassofnil.com/?p=306 A blog entry by Durante on creating a hybrid texture filter for PPSSPP.] | |
− | |||
− | [https://web.archive.org/web/20140904180543/http://board.byuu.org/viewtopic.php?f=10&t=2248 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) | ||
− | |||
− | [http://blog.metaclassofnil.com/?p=306 A blog entry by Durante on creating a hybrid texture filter for PPSSPP.] | ||
[[Category:FAQs]] | [[Category:FAQs]] |
Revision as of 19:25, 16 March 2020
- This article is about smoothing techniques that may be present even on original hardware. For the process of replacing textures to improve their visual fidelity or other aesthetic reasons, see Texture Packs.
Texture filtering refers to the methods used to smooth the textures of a 3D model. Every home console after the Nintendo 64 is able to do it, including every modern PC and Android device. This makes it useful in emulation, where it can be applied to emulators for consoles that did not originally have it through various emulators that support it.
Contents
Consoles
Console | Texture Filtering | Types of filtering |
---|---|---|
Super Nintendo | ✗ | |
3DO | ✗ | ? |
Atari Jaguar | ✗ | |
Sega Saturn | ✗ | |
PlayStation | ✗ | |
Nintendo 64 | ✓ | Three-sample |
Sega Dreamcast | ✓ | Bilinear, trilinear, anisotropic |
PlayStation 2 | ✓ | Bilinear, trilinear, Anisotropic |
GameCube | ✓ | Bilinear, trilinear, anisotropic |
Xbox | ✓ | Bilinear, trilinear, anisotropic |
Nintendo DS | ✗ | ? |
PlayStation Portable | ✓ | Bilinear, trilinear |
Wii | ✓ | Bilinear, trilinear, anisotropic |
Types of Texture Filtering
Filtering type | What it does | Pros | Cons |
---|---|---|---|
Nearest neighbor | This method sorts pixels into the nearest place relevant to its placement in the original resolution, in order to display the image at whatever resolution you specify. |
|
|
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. |
|
|
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 taken 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. |
|
|
xBRZ | A modified version of xBR, which is very similar except it's better at scaling up smaller features consisting of <10 pixels. |
|
|
Durante's Hybrid and Deposterization Filters for PPSSPP
PPSSPP has a scaling option known as "Hybrid." There's also an option called "Deposterize." Posterization, meaning a sharp contrast in hue from one pixel to another (very common in low-quality gifs) has been a problem plaguing texture scaling algorithms for quite some time. Durante's filter switches between xBR and bilinear/bicubic filtering depending on the texture information. On top of this, the "Deposterize" option tackles posterization edges in compressed textures, allowing for a smooth gradient rather than a sharp transition. Although it's not perfect (a perfect scaler sadly isn't possible with today's computing power) it's still great and it's recommended to use for PPSSPP if you have the specs.
Images
Further reading
- 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 by Durante on creating a hybrid texture filter for PPSSPP.