Changes

Jump to navigation Jump to search

Texture filtering

4,229 bytes added, 03:41, 11 March 2014
Added in a nice table explanations of what the various texture filters do, and the pros and cons of each one. I also added more filters to the list.
|}
{| class="wikitable"|+Types of Texture Filtering! scope="col" style="text-align: center;"|Filtering type! scope="col" style="text-align: center;"|What it does! scope="col" style="text-align: center;"|Pros! scope="col" style="text-align: center;"|Cons|-| style="text-align: center;"|'''Nearest neighbor'''| style="text-align: center;"|Basically, it looks the exact same as having no filter whatsoever.| style="text-align: center;"|*Very fast. *Looks good for 2D games if you want to keep the pixel art aesthetic.| style="text-align: center;"|*3D games look terrible.*It's unfiltered pixels. You should know what to expect.|-| style="text-align: center;"|'''Nearest Neighbor with Mipmapping'''| style="text-align: center;"|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.| style="text-align: center;"|*Even faster than regular nearest neighbor.| style=Types"text-align: center;"|*3D games look terrible.|-| style="text-align: center;"|'''Bilinear'''| style="text-align: center;"|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.| style="text-align: center;"|*Looks better than nearest neighbor for 3D games.*It's the least system-intensive form of texture filtering/scaling.| style="text-align: center;"|*2D games look atrocious.*If you have the specs to use them, every other filtering option is better.|-| style="text-align: center;"|'''Trilinear'''| style="text-align: center;"|This linear filtering method does the same thing as bilinear filtering, except it passes through twice, giving a smoother gradient.| style="text-align: center;"|*Looks better than bilinear filtering for 3D games.| style="text-align: center;"|*2D games look atrocious.|-| style="text-align: center;"|'''Anisotropic'''| style="text-align: center;"|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.| style="text-align: center;"|*Looks much better than just linear filtering for 3D games.*Can be used alongside linear filtering for even smoother-looking textures.| style="text-align: center;"|*Very system-intensive.*Not recommended for 2D games.|-| style="text-align: center;"|'''HQx'''| style="text-align: center;"|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.| style="text-align: center;"|*Looks great for many 2D games.| style="text-align: center;"|*Artifacts are prominent.*Curves and slopes that aren't 45­° slopes look very pixelated compared to everything else.*The finer details of the textures/sprites might be obscured by bad edge detection.*Posterization is very common. There are deposterization filters in some emulators (e.g. PPSSPP) that can aid this, however.*Worse at some things that xBR excels at.|-| style="text-align: center;"|'''2xSaI'''| style="text-align: center;"|A texture scaling algorithm. Scales the texture and fills edges in with a mixture of pixels from the source, and randomly-guessed colors.| style="text-align: center;"|*Less system-intensive than HQx and xBR.*Good if it's the best option available (e.g. like in Pete's OpenGL2 plugin for PSX emulators).| style="text-align: center;"|*Edge detection is horrible.*Artifacts are common.*Posterization is very common.*Archaic. The alternatives are much better.|-| style="text-align: center;"|'''xBR'''| style="text-align: center;"|A modified version of HQx. It detects edges better, which works better for slopes that are greater than or less than 45 degrees.| style="text-align: center;"|*Looks great in 2D games.*Edge detection is improved over HQx. This gives textures smoother curves and slopes, as well as fewer artifacts.*3D games look great with it as well.| style="text-align: center;"|*Posterization is common. There are deposterization filters in some emulators (e.g. PPSSPP) that can aid this, however.*Worse at some things that HQx excels at.|}
include descriptions of what these terms mean, because I'm clueless.
*Nearest neighbor
*Nearest-neighbor with mipmapping
*Bilinear
*Trilinear
*Linear
*Linear (cg)
*Anisotropic
*xBR
==Images==
<gallery captionalign="center" position="center">
Psp-linear2.jpg|PSP game with 'linear' filteringPsp-nearest2.jpg|PSP game with 'nearest' filteringneighbor upscalingPsp-xbr2.jpg|PSP game with 'xBR' 3xBR filtering (3x)
</gallery>
<gallery position="center" bordersize="none" captionalign="center">
N64-bilinear2.png|N64 game at native internal resolution (using SoftGraphic plugin)N64-bilinear.png|N64 game upscaled with 'bilinear' filtering (using Glide64 plugin)N64-nearest.png|N64 game upscaled with 'nearest' filtering neighbor (using Glide64 plugin</gallery><gallery captionalign="center" position="center" bordersize="none" captionsize="medium" captionposition="below">Psp-linear.png|PSP game with 'linear' filteringPsp-nearest.png|PSP game with 'nearest' filteringPsp-xbr.png|PSP game with 'xBR' filtering)
</gallery><gallery columns="2" captionalign="center" widths="180" position="center" bordersize="none">
Snes-nearest.png|SNES game with 'nearest' filterneighbor upscalingSnes-linear.png|SNES game with 'linear' filterfiltering
</gallery>
==Further reading==
[http://en.wikipedia.org/wiki/Texture_filteringWikipedia's entry on Texture Filtering] [http://blog.metaclassofnil.com/?p=306 A blog entry on creating a hybrid texture filter for PPSSPP.] 
[[Category:FAQs]]
Anonymous user

Navigation menu