Texture filtering: Difference between revisions
| (5 intermediate revisions by the same user not shown) | |||
| Line 63: | Line 63: | ||
==Texture Filtering Algorithms== | ==Texture Filtering Algorithms== | ||
These methods determine how a texture is sampled and displayed on a 3D model. They are generally native to original hardware or | These methods determine how a texture is sampled and displayed on a 3D model in real-time. They are generally native to original hardware or forced via emulator enhancement settings. | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
| Line 72: | Line 72: | ||
|- | |- | ||
|'''Nearest neighbor''' | |'''Nearest neighbor''' | ||
| | |The GPU picks the color of the single closest pixel in the original texture. | ||
| | | | ||
* | * Preserves sharp pixel-art style. | ||
* | * Lowest computational cost. | ||
| | | | ||
* | * Causes "shimmering" or "aliasing" in motion. | ||
* 3D textures look "blocky" up close. | |||
|- | |- | ||
|'''Bilinear''' | |'''Bilinear''' | ||
| | |Averages the color data of the 4 closest pixels to create a smooth transition. | ||
| | | | ||
*Looks better than nearest neighbor for 3D games. | *Looks better than nearest neighbor for 3D games. | ||
*It's the least system-intensive form of texture filtering/scaling. | *It's the least system-intensive form of texture filtering/scaling. | ||
| | | | ||
* | * Can look "blurry," especially on low-resolution textures. | ||
* | * Does not look good for 2D sprites. | ||
|- | |- | ||
|'''Trilinear''' | |'''Trilinear''' | ||
| | |An extension of Bilinear that interpolates between mipmaps (different resolution versions of the same texture). | ||
| | | | ||
* | * Eliminates visible "lines" or "bands" between texture quality levels in the distance. | ||
| | | | ||
* | * Still produces blurriness at sharp viewing angles. | ||
|- | |- | ||
|''' | |'''Anisotropic (AF)''' | ||
| | |Enhances texture quality on surfaces viewed at oblique angles (like floors or walls). | ||
| | | | ||
* | * Drastically improves clarity for distant textures. | ||
* Modern GPUs handle this with almost zero performance loss. | |||
* | |||
| | | | ||
* | * Not available on older legacy hardware. | ||
|} | |} | ||
==Texture Scaling Algorithms== | ==Texture Scaling Algorithms== | ||
{{for|smoothing shaders|Shaders, presets and filters#Smoothing | {{for|smoothing shaders|Shaders, presets and filters#Smoothing}} | ||
These are enhancement algorithms (often called "upscalers") used by emulators to increase the resolution of textures to look better on modern displays. | These are enhancement algorithms (often called "upscalers") used by emulators to increase the resolution of textures to look better on modern displays. | ||
| Line 187: | Line 177: | ||
*Extremely hardware intensive compared to every other filter on this list; requires a capable GPU. | *Extremely hardware intensive compared to every other filter on this list; requires a capable GPU. | ||
*Can sometimes introduce small "wobbles" or artifacts in very complex, noisy textures where the AI misidentifies an edge. | *Can sometimes introduce small "wobbles" or artifacts in very complex, noisy textures where the AI misidentifies an edge. | ||
|- | |||
|'''ArtCNN''' | |||
|A lightweight Convolutional Neural Network (CNN) designed for real-time upscaling and artifact removal. It uses machine learning to reconstruct sharp edges and smooth gradients. | |||
| | |||
*Produces some of the cleanest results for 2D art and UI elements. | |||
*Excellent at removing "ringing" and compression artifacts that other scalers might amplify. | |||
*Provides a much more natural, "hand-drawn" look compared to the "oil painting" effect of xBRZ. | |||
*Highly optimized; much faster than NNEDI3 while providing similar or better visual clarity. | |||
| | |||
*Requires a GPU that supports modern shader languages (Vulkan/GLSL/HLSL). | |||
*Can occasionally "over-clean" textures, removing intentional film grain or fine grit in 3D textures. | |||
*May be too demanding for very low-end integrated graphics or older mobile devices. | |||
|} | |} | ||
| Line 249: | Line 251: | ||
*[[PlayStation Portable emulators#Enhancements]] | *[[PlayStation Portable emulators#Enhancements]] | ||
sections. | sections. | ||
==Framebuffer Scaling & Output Methods== | |||
{{Main|Scaling}} | |||
==Further reading== | ==Further reading== | ||